Skip to content

ログ出力制御

Go 標準の log パッケージにはログレベル別の文言出力機能がないため、ログ出力制御を行うパッケージを作成します。

実装例

internal/logging

ログレベルごとに関数を定義します。

package logging

import "log"

func Info(message string) {
    log.Println("INFO: " + message)
}

func Warn(message string) {
    log.Println("WARN: " + message)
}

func Error(message string) {
    log.Println("ERROR: " + message)
}

internal/usecase

上記関数を呼び出してログ出力します。

func (u *sampleUsecase) Greeting(name string) (string, error) {

    if name == "" {
        logging.Error("Empty name") // ERRORログ出力
        return "", apperrors.NewSampleError("Empty name")
    }

    logging.Info("Success") // INFOログ出力
    return "Hello, " + name + "!", nil
}