chore: 完善日志库。可维护比性能更重要。
This commit is contained in:
parent
b3ed0b7429
commit
9a59bf88dd
@ -10,11 +10,9 @@ package logger
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/natefinch/lumberjack"
|
"github.com/natefinch/lumberjack"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/pkgerrors"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var access_once sync.Once
|
var access_once sync.Once
|
||||||
@ -29,8 +27,6 @@ func SetupAccessLogFile(path string) {
|
|||||||
|
|
||||||
func Access() *zerolog.Logger {
|
func Access() *zerolog.Logger {
|
||||||
access_once.Do(func() {
|
access_once.Do(func() {
|
||||||
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
|
|
||||||
zerolog.TimeFieldFormat = time.RFC3339Nano
|
|
||||||
|
|
||||||
fileLogger := &lumberjack.Logger{
|
fileLogger := &lumberjack.Logger{
|
||||||
Filename: access_log_path,
|
Filename: access_log_path,
|
||||||
@ -43,9 +39,11 @@ func Access() *zerolog.Logger {
|
|||||||
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
||||||
|
|
||||||
l := zerolog.New(output).
|
l := zerolog.New(output).
|
||||||
Level(zerolog.InfoLevel).
|
Level(loggerLevel).
|
||||||
With().
|
With().
|
||||||
Timestamp().
|
Timestamp().
|
||||||
|
Stack().
|
||||||
|
CallerWithSkipFrameCount(2).
|
||||||
Logger()
|
Logger()
|
||||||
|
|
||||||
access_log = &l
|
access_log = &l
|
||||||
|
@ -10,11 +10,9 @@ package logger
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/natefinch/lumberjack"
|
"github.com/natefinch/lumberjack"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/pkgerrors"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var console_once sync.Once
|
var console_once sync.Once
|
||||||
@ -29,8 +27,6 @@ func SetupConsoleLogFile(path string) {
|
|||||||
|
|
||||||
func Console() *zerolog.Logger {
|
func Console() *zerolog.Logger {
|
||||||
console_once.Do(func() {
|
console_once.Do(func() {
|
||||||
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
|
|
||||||
zerolog.TimeFieldFormat = time.RFC3339Nano
|
|
||||||
|
|
||||||
fileLogger := &lumberjack.Logger{
|
fileLogger := &lumberjack.Logger{
|
||||||
Filename: console_log_path,
|
Filename: console_log_path,
|
||||||
@ -43,9 +39,11 @@ func Console() *zerolog.Logger {
|
|||||||
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
||||||
|
|
||||||
l := zerolog.New(output).
|
l := zerolog.New(output).
|
||||||
Level(zerolog.InfoLevel).
|
Level(loggerLevel).
|
||||||
With().
|
With().
|
||||||
Timestamp().
|
Timestamp().
|
||||||
|
Stack().
|
||||||
|
CallerWithSkipFrameCount(2).
|
||||||
Logger()
|
Logger()
|
||||||
|
|
||||||
console_log = &l
|
console_log = &l
|
||||||
|
30
logger/init.go
Normal file
30
logger/init.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// init.go
|
||||||
|
// Copyright (C) 2023 tiglog <me@tiglog.com>
|
||||||
|
//
|
||||||
|
// Distributed under terms of the MIT license.
|
||||||
|
//
|
||||||
|
|
||||||
|
package logger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/rs/zerolog"
|
||||||
|
"github.com/rs/zerolog/pkgerrors"
|
||||||
|
)
|
||||||
|
|
||||||
|
var loggerLevel = zerolog.InfoLevel
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
|
||||||
|
zerolog.TimeFieldFormat = time.RFC3339Nano
|
||||||
|
zerolog.CallerMarshalFunc = func(pc uintptr, file string, line int) string {
|
||||||
|
return file + ":" + strconv.Itoa(line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetLevel(level zerolog.Level) {
|
||||||
|
loggerLevel = level
|
||||||
|
}
|
@ -10,31 +10,23 @@ package logger
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/natefinch/lumberjack"
|
"github.com/natefinch/lumberjack"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/pkgerrors"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var once sync.Once
|
var once sync.Once
|
||||||
|
|
||||||
var log_path = "./var/log/app.log"
|
var log_path = "./var/log/app.log"
|
||||||
var log_level = zerolog.InfoLevel
|
|
||||||
|
|
||||||
func SetLogPath(path string) {
|
func SetLogPath(path string) {
|
||||||
log_path = path
|
log_path = path
|
||||||
}
|
}
|
||||||
func SetLogLevel(level zerolog.Level) {
|
|
||||||
log_level = level
|
|
||||||
}
|
|
||||||
|
|
||||||
var log *zerolog.Logger
|
var log *zerolog.Logger
|
||||||
|
|
||||||
func Get() *zerolog.Logger {
|
func Get() *zerolog.Logger {
|
||||||
once.Do(func() {
|
once.Do(func() {
|
||||||
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
|
|
||||||
zerolog.TimeFieldFormat = time.RFC3339Nano
|
|
||||||
|
|
||||||
fileLogger := &lumberjack.Logger{
|
fileLogger := &lumberjack.Logger{
|
||||||
Filename: log_path,
|
Filename: log_path,
|
||||||
@ -47,9 +39,11 @@ func Get() *zerolog.Logger {
|
|||||||
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
||||||
|
|
||||||
l := zerolog.New(output).
|
l := zerolog.New(output).
|
||||||
Level(log_level).
|
Level(loggerLevel).
|
||||||
With().
|
With().
|
||||||
Timestamp().
|
Timestamp().
|
||||||
|
Stack().
|
||||||
|
CallerWithSkipFrameCount(2).
|
||||||
Logger()
|
Logger()
|
||||||
log = &l
|
log = &l
|
||||||
})
|
})
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
package logger_test
|
package logger_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"git.hexq.cn/tiglog/golib/gtest"
|
"git.hexq.cn/tiglog/golib/gtest"
|
||||||
@ -18,5 +19,6 @@ func TestLogToFile(t *testing.T) {
|
|||||||
// logger.SetupLog("./var/log/test.log", zerolog.DebugLevel)
|
// logger.SetupLog("./var/log/test.log", zerolog.DebugLevel)
|
||||||
var log = logger.Get()
|
var log = logger.Get()
|
||||||
gtest.NotNil(t, log)
|
gtest.NotNil(t, log)
|
||||||
log.Log().Msg("hello world")
|
err := errors.New("test error")
|
||||||
|
log.Log().Err(err).Msg("hello world")
|
||||||
}
|
}
|
||||||
|
@ -10,11 +10,9 @@ package logger
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/natefinch/lumberjack"
|
"github.com/natefinch/lumberjack"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/pkgerrors"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var recover_once sync.Once
|
var recover_once sync.Once
|
||||||
@ -29,8 +27,6 @@ func SetupRecoverLogFile(path string) {
|
|||||||
|
|
||||||
func Recover() *zerolog.Logger {
|
func Recover() *zerolog.Logger {
|
||||||
recover_once.Do(func() {
|
recover_once.Do(func() {
|
||||||
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
|
|
||||||
zerolog.TimeFieldFormat = time.RFC3339Nano
|
|
||||||
|
|
||||||
fileLogger := &lumberjack.Logger{
|
fileLogger := &lumberjack.Logger{
|
||||||
Filename: recover_log_path,
|
Filename: recover_log_path,
|
||||||
@ -46,6 +42,8 @@ func Recover() *zerolog.Logger {
|
|||||||
// Level(zerolog.InfoLevel).
|
// Level(zerolog.InfoLevel).
|
||||||
With().
|
With().
|
||||||
Timestamp().
|
Timestamp().
|
||||||
|
Stack().
|
||||||
|
CallerWithSkipFrameCount(2).
|
||||||
Logger()
|
Logger()
|
||||||
|
|
||||||
recover_log = &l
|
recover_log = &l
|
||||||
|
@ -10,11 +10,9 @@ package logger
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/natefinch/lumberjack"
|
"github.com/natefinch/lumberjack"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/pkgerrors"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var work_once sync.Once
|
var work_once sync.Once
|
||||||
@ -29,9 +27,6 @@ func SetupWorkLogFile(path string) {
|
|||||||
|
|
||||||
func Work() *zerolog.Logger {
|
func Work() *zerolog.Logger {
|
||||||
work_once.Do(func() {
|
work_once.Do(func() {
|
||||||
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
|
|
||||||
zerolog.TimeFieldFormat = time.RFC3339Nano
|
|
||||||
|
|
||||||
fileLogger := &lumberjack.Logger{
|
fileLogger := &lumberjack.Logger{
|
||||||
Filename: work_log_path,
|
Filename: work_log_path,
|
||||||
MaxSize: 5, //
|
MaxSize: 5, //
|
||||||
@ -43,9 +38,11 @@ func Work() *zerolog.Logger {
|
|||||||
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
|
||||||
|
|
||||||
l := zerolog.New(output).
|
l := zerolog.New(output).
|
||||||
Level(zerolog.InfoLevel).
|
Level(loggerLevel).
|
||||||
With().
|
With().
|
||||||
Timestamp().
|
Timestamp().
|
||||||
|
Stack().
|
||||||
|
CallerWithSkipFrameCount(2).
|
||||||
Logger()
|
Logger()
|
||||||
|
|
||||||
work_log = &l
|
work_log = &l
|
||||||
|
Loading…
Reference in New Issue
Block a user