ログ出力制御
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
}