Skip to content

Commit

Permalink
log: support custom time format configuration (#1401)
Browse files Browse the repository at this point in the history
  • Loading branch information
j75689 authored and brilliant-lx committed Apr 3, 2023
1 parent 6e06ed1 commit e4381a5
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 12 deletions.
15 changes: 13 additions & 2 deletions log/format.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,12 @@ import (
"unicode/utf8"
)

var (
timeFormat = "2006-01-02T15:04:05-0700"
termTimeFormat = "01-02|15:04:05.000"
)

const (
timeFormat = "2006-01-02T15:04:05-0700"
termTimeFormat = "01-02|15:04:05.000"
floatFormat = 'f'
termMsgJust = 40
termCtxMaxPadding = 40
Expand Down Expand Up @@ -482,3 +485,11 @@ func escapeString(s string) string {
}
return strconv.Quote(s)
}

func SetTermTimeFormat(format string) {
termTimeFormat = format
}

func SetTimeFormat(format string) {
timeFormat = format
}
13 changes: 9 additions & 4 deletions node/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -502,8 +502,13 @@ func (c *Config) warnOnce(w *bool, format string, args ...interface{}) {
}

type LogConfig struct {
FileRoot string
FilePath string
MaxBytesSize uint
Level string
FileRoot *string
FilePath *string
MaxBytesSize *uint
Level *string

// TermTimeFormat is the time format used for console logging.
TermTimeFormat *string
// TimeFormat is the time format used for file logging.
TimeFormat *string
}
24 changes: 18 additions & 6 deletions node/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,25 @@ func New(conf *Config) (*Node, error) {
conf.DataDir = absdatadir
}
if conf.LogConfig != nil {
logFilePath := ""
if conf.LogConfig.FileRoot == "" {
logFilePath = path.Join(conf.DataDir, conf.LogConfig.FilePath)
} else {
logFilePath = path.Join(conf.LogConfig.FileRoot, conf.LogConfig.FilePath)
if conf.LogConfig.TermTimeFormat != nil && *conf.LogConfig.TermTimeFormat != "" {
log.SetTermTimeFormat(*conf.LogConfig.TermTimeFormat)
}

if conf.LogConfig.TimeFormat != nil && *conf.LogConfig.TimeFormat != "" {
log.SetTimeFormat(*conf.LogConfig.TimeFormat)
}

if conf.LogConfig.FileRoot != nil && conf.LogConfig.FilePath != nil &&
conf.LogConfig.MaxBytesSize != nil && conf.LogConfig.Level != nil {
// log to file
logFilePath := ""
if *conf.LogConfig.FileRoot == "" {
logFilePath = path.Join(conf.DataDir, *conf.LogConfig.FilePath)
} else {
logFilePath = path.Join(*conf.LogConfig.FileRoot, *conf.LogConfig.FilePath)
}
log.Root().SetHandler(log.NewFileLvlHandler(logFilePath, *conf.LogConfig.MaxBytesSize, *conf.LogConfig.Level))
}
log.Root().SetHandler(log.NewFileLvlHandler(logFilePath, conf.LogConfig.MaxBytesSize, conf.LogConfig.Level))
}
if conf.Logger == nil {
conf.Logger = log.New()
Expand Down

0 comments on commit e4381a5

Please sign in to comment.