add caller info & stdout

master v0.0.4
guohao 5 years ago
parent 866ab7541e
commit 199f680758
  1. 31
      gokit.go

@ -3,25 +3,20 @@ package logkit
import ( import (
"fmt" "fmt"
"io" "io"
"runtime"
"time" "time"
) )
var ( var (
inited bool inited bool
logWriter Writer logWriter Writer
logLevel = LevelInfo logLevel = LevelInfo
logLevelName string logLevelName string
logName string logName string
logPath string logPath string
channel Channel
wChannel Channel
alsoStdout bool alsoStdout bool
withCaller bool
levelToNames = map[Level]string{ levelToNames = map[Level]string{
LevelFatal: "FATAL", LevelFatal: "FATAL",
@ -66,7 +61,7 @@ func Exit() {
} }
func Init(channel Channel, name string, level Level) error { func Init(_channel Channel, name string, level Level, _alsoStdout bool, _withCaller bool) error {
if inited { if inited {
return fmt.Errorf("logkit has been inited") return fmt.Errorf("logkit has been inited")
} }
@ -79,7 +74,9 @@ func Init(channel Channel, name string, level Level) error {
logLevel = level logLevel = level
logLevelName = getLevelName(level) logLevelName = getLevelName(level)
wChannel = channel channel = _channel
alsoStdout = _alsoStdout
withCaller = _withCaller
return nil return nil
} }
@ -92,25 +89,31 @@ func getLevelName(level Level) string {
} }
func format(msg string) string { func format(msg string) string {
if withCaller {
funcName, file, line, _ := runtime.Caller(2)
return fmt.Sprintf("%s [%s] %s:%d::%s %s \n", time.Now().Format("2006-01-02 15:04:05.999"), logLevelName, file, line, funcName, msg)
} else {
return fmt.Sprintf("%s [%s] %s \n", time.Now().Format("2006-01-02 15:04:05.999"), logLevelName, msg) return fmt.Sprintf("%s [%s] %s \n", time.Now().Format("2006-01-02 15:04:05.999"), logLevelName, msg)
} }
}
func write(level Level, msg string) { func write(level Level, msg string) {
if !inited { if !inited {
if logWriter == nil && wChannel == FIlE { if logWriter == nil && channel == FIlE {
if logPath == "" { if logPath == "" {
logPath = "/data/logs/" + logName + ".log" logPath = "/data/logs/" + logName + ".log"
} }
logWriter = NewFileLogger(logPath, logName, time.Second*5, 1204*1024*1800, 256*1024) logWriter = NewFileLogger(logPath, logName, time.Second*5, 1204*1024*1800, 256*1024)
} }
if logWriter == nil && wChannel == SYSLOG { if logWriter == nil && channel == SYSLOG {
logWriter, _ = NewSyslogWriter("", "", level, logName) logWriter, _ = NewSyslogWriter("", "", level, logName)
} }
inited = true inited = true
} }
logWriter.Write(level, format(msg)) messageStr := format(msg)
logWriter.Write(level, messageStr)
if alsoStdout { if alsoStdout {
fmt.Println(time.Now().Format("2006-01-02 15:04:05") + " [" + logLevelName + "] " + msg) fmt.Println(messageStr)
} }
} }

Loading…
Cancel
Save