mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
优化日志,换天切换文件
This commit is contained in:
30
log/log.go
30
log/log.go
@@ -26,9 +26,12 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Logger struct {
|
type Logger struct {
|
||||||
|
filePath string
|
||||||
|
logTime time.Time
|
||||||
level int
|
level int
|
||||||
baseLogger *log.Logger
|
baseLogger *log.Logger
|
||||||
baseFile *os.File
|
baseFile *os.File
|
||||||
|
flag int
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(strLevel string, pathname string, flag int) (*Logger, error) {
|
func New(strLevel string, pathname string, flag int) (*Logger, error) {
|
||||||
@@ -50,9 +53,8 @@ func New(strLevel string, pathname string, flag int) (*Logger, error) {
|
|||||||
// logger
|
// logger
|
||||||
var baseLogger *log.Logger
|
var baseLogger *log.Logger
|
||||||
var baseFile *os.File
|
var baseFile *os.File
|
||||||
|
now := time.Now()
|
||||||
if pathname != "" {
|
if pathname != "" {
|
||||||
now := time.Now()
|
|
||||||
|
|
||||||
filename := fmt.Sprintf("%d%02d%02d_%02d_%02d_%02d.log",
|
filename := fmt.Sprintf("%d%02d%02d_%02d_%02d_%02d.log",
|
||||||
now.Year(),
|
now.Year(),
|
||||||
now.Month(),
|
now.Month(),
|
||||||
@@ -77,6 +79,9 @@ func New(strLevel string, pathname string, flag int) (*Logger, error) {
|
|||||||
logger.level = level
|
logger.level = level
|
||||||
logger.baseLogger = baseLogger
|
logger.baseLogger = baseLogger
|
||||||
logger.baseFile = baseFile
|
logger.baseFile = baseFile
|
||||||
|
logger.logTime = now
|
||||||
|
logger.filePath = pathname
|
||||||
|
logger.flag = flag
|
||||||
|
|
||||||
return logger, nil
|
return logger, nil
|
||||||
}
|
}
|
||||||
@@ -99,6 +104,27 @@ func (logger *Logger) doPrintf(level int, printLevel string, format string, a ..
|
|||||||
panic("logger closed")
|
panic("logger closed")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if logger.baseFile != nil {
|
||||||
|
now := time.Now()
|
||||||
|
if now.Day() != logger.logTime.Day() {
|
||||||
|
filename := fmt.Sprintf("%d%02d%02d_%02d_%02d_%02d.log",
|
||||||
|
now.Year(),
|
||||||
|
now.Month(),
|
||||||
|
now.Day(),
|
||||||
|
now.Hour(),
|
||||||
|
now.Minute(),
|
||||||
|
now.Second())
|
||||||
|
|
||||||
|
file, err := os.Create(path.Join(logger.filePath, filename))
|
||||||
|
if err == nil {
|
||||||
|
logger.baseFile.Close()
|
||||||
|
logger.baseLogger = log.New(file, "", logger.flag)
|
||||||
|
logger.baseFile = file
|
||||||
|
logger.logTime = now
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
format = printLevel + format
|
format = printLevel + format
|
||||||
logger.baseLogger.Output(3, fmt.Sprintf(format, a...))
|
logger.baseLogger.Output(3, fmt.Sprintf(format, a...))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user