私は行くにログインして作業を開始していると私は(若干変更)以下のソースコードで行くhttps://www.goinggo.net/2013/11/using-log-package-in-go.htmlにログフォーマットにカスタム(非const)文字列情報を追加するには?
をロギングについては、この記事に遭遇している:今、私はいくつかのカスタムを追加したいと思い
var (
Trace *log.Logger
Info *log.Logger
Warning *log.Logger
Error *log.Logger
)
func Init(
traceHandle io.Writer,
infoHandle io.Writer,
warningHandle io.Writer,
errorHandle io.Writer) {
Trace = log.New(traceHandle,
“TRACE: “,
log.Ldate|log.Ltime|log.Lshortfile)
Info = log.New(infoHandle,
“INFO: “,
log.Ldate|log.Ltime|log.Lshortfile)
Warning = log.New(warningHandle,
“WARNING: “,
log.Ldate|log.Ltime|log.Lshortfile)
Error = log.New(errorHandle,
“ERROR: “,
log.Ldate|log.Ltime|log.Lshortfile)
}
func main() {
Init(ioutil.Discard, os.Stdout, os.Stdout, os.Stderr)
}
をこのロガーによって生成されたログエントリへの情報ですが、const文字列リテラルではありません(たとえば、INFO:
またはWARNING:
)
たとえば、ログがトリガーされた関数の名前を追加したいとします。のは、私はこのために使用したい以下の機能を持っているとしましょう:(hereから)
func _enter() {
// Skip this function, and fetch the PC and file for its parent
pc, _, _, _ := runtime.Caller(1)
// Retrieve a Function object this functions parent
functionObject := runtime.FuncForPC(pc)
// Regex to extract just the function name (and not the module path)
extractFnName := regexp.MustCompile(`^.*\.(.*)$`)
fnName := extractFnName.ReplaceAllString(functionObject.Name(), "$1")
fmt.Printf("Entering %s\n", fnName)
}
私はロガーにこれを追加することができますどのように?