improve: add stdout channel

master v0.1.14
infra-bot 4 years ago
parent e5d38afdde
commit 76f22a496b
  1. 18
      gokit.go

@ -4,6 +4,7 @@ import (
"flag" "flag"
"fmt" "fmt"
"io" "io"
"os"
"path" "path"
"runtime" "runtime"
"strconv" "strconv"
@ -24,7 +25,7 @@ var (
channel Channel channel Channel
alsoStdout bool alsoStdout bool
withCaller Caller withCaller Caller
stdOut io.Writer
levelToNames = map[Level]string{ levelToNames = map[Level]string{
LevelFatal: "FATAL", LevelFatal: "FATAL",
LevelError: "ERROR", LevelError: "ERROR",
@ -82,6 +83,7 @@ const (
FIlE Channel = iota FIlE Channel = iota
SYSLOG SYSLOG
KAFKA KAFKA
STDOUT
) )
func (c *Channel) String() string { func (c *Channel) String() string {
@ -90,15 +92,19 @@ func (c *Channel) String() string {
return "file" return "file"
case SYSLOG: case SYSLOG:
return "syslog" return "syslog"
case STDOUT:
return "none"
} }
return "file" return "file"
} }
func (c *Channel) Set(value string) error { func (c *Channel) Set(value string) error {
switch value { switch strings.ToLower(value) {
case "file": case "file":
*c = FIlE *c = FIlE
case "syslog": case "syslog":
*c = SYSLOG *c = SYSLOG
case "none":
*c = STDOUT
default: default:
*c = FIlE *c = FIlE
} }
@ -194,7 +200,7 @@ func Init() (writer io.Writer, err error) {
} }
if logWriter == nil && channel == FIlE { if logWriter == nil && channel == FIlE {
if logPath == "" { if logPath == "" {
logPath = "/data/logs/" + logName + ".log" logPath = "/var/log/" + logName + ".log"
} }
logWriter, err = NewFileLogger(logPath, logName, flushInterval, fileSplitSize, 4*1024) logWriter, err = NewFileLogger(logPath, logName, flushInterval, fileSplitSize, 4*1024)
if err != nil { if err != nil {
@ -204,6 +210,9 @@ func Init() (writer io.Writer, err error) {
if logWriter == nil && channel == SYSLOG { if logWriter == nil && channel == SYSLOG {
logWriter, _ = NewSyslogWriter("", "", logLevel, logName) logWriter, _ = NewSyslogWriter("", "", logLevel, logName)
} }
if logWriter == nil && channel == STDOUT {
logWriter = os.Stdout
}
inited = true inited = true
return logWriter, nil return logWriter, nil
} }
@ -235,7 +244,6 @@ func format(level Level, msg string) string {
default: default:
context = fmt.Sprintf("%s:%03d", path.Base(file), line) context = fmt.Sprintf("%s:%03d", path.Base(file), line)
} }
return fmt.Sprintf("%s\t[%4s]\t%s\t%s\n", time.Now().Format("2006-01-02 15:04:05.999"), getLevelName(level), context, msg) return fmt.Sprintf("%s\t[%4s]\t%s\t%s\n", time.Now().Format("2006-01-02 15:04:05.999"), getLevelName(level), context, msg)
} else { } else {
return fmt.Sprintf("%s\t[%4s]\t%s\n", time.Now().Format("2006-01-02 15:04:05.999"), getLevelName(level), msg) return fmt.Sprintf("%s\t[%4s]\t%s\n", time.Now().Format("2006-01-02 15:04:05.999"), getLevelName(level), msg)
@ -255,7 +263,7 @@ func write(level Level, msg string) (err error) {
messageStr := format(level, msg) messageStr := format(level, msg)
_, err = logWriter.Write([]byte(messageStr)) _, err = logWriter.Write([]byte(messageStr))
if alsoStdout { if alsoStdout {
fmt.Print(messageStr) stdOut.Write([]byte(messageStr))
} }
return return
} }

Loading…
Cancel
Save