chore: 完善日志库。可维护比性能更重要。

This commit is contained in:
tiglog 2023-07-14 16:03:51 +08:00
parent b3ed0b7429
commit 9a59bf88dd
7 changed files with 47 additions and 30 deletions

View File

@ -10,11 +10,9 @@ package logger
import (
"os"
"sync"
"time"
"github.com/natefinch/lumberjack"
"github.com/rs/zerolog"
"github.com/rs/zerolog/pkgerrors"
)
var access_once sync.Once
@ -29,8 +27,6 @@ func SetupAccessLogFile(path string) {
func Access() *zerolog.Logger {
access_once.Do(func() {
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
zerolog.TimeFieldFormat = time.RFC3339Nano
fileLogger := &lumberjack.Logger{
Filename: access_log_path,
@ -43,9 +39,11 @@ func Access() *zerolog.Logger {
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
l := zerolog.New(output).
Level(zerolog.InfoLevel).
Level(loggerLevel).
With().
Timestamp().
Stack().
CallerWithSkipFrameCount(2).
Logger()
access_log = &l

View File

@ -10,11 +10,9 @@ package logger
import (
"os"
"sync"
"time"
"github.com/natefinch/lumberjack"
"github.com/rs/zerolog"
"github.com/rs/zerolog/pkgerrors"
)
var console_once sync.Once
@ -29,8 +27,6 @@ func SetupConsoleLogFile(path string) {
func Console() *zerolog.Logger {
console_once.Do(func() {
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
zerolog.TimeFieldFormat = time.RFC3339Nano
fileLogger := &lumberjack.Logger{
Filename: console_log_path,
@ -43,9 +39,11 @@ func Console() *zerolog.Logger {
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
l := zerolog.New(output).
Level(zerolog.InfoLevel).
Level(loggerLevel).
With().
Timestamp().
Stack().
CallerWithSkipFrameCount(2).
Logger()
console_log = &l

30
logger/init.go Normal file
View 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
}

View File

@ -10,31 +10,23 @@ package logger
import (
"os"
"sync"
"time"
"github.com/natefinch/lumberjack"
"github.com/rs/zerolog"
"github.com/rs/zerolog/pkgerrors"
)
var once sync.Once
var log_path = "./var/log/app.log"
var log_level = zerolog.InfoLevel
func SetLogPath(path string) {
log_path = path
}
func SetLogLevel(level zerolog.Level) {
log_level = level
}
var log *zerolog.Logger
func Get() *zerolog.Logger {
once.Do(func() {
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
zerolog.TimeFieldFormat = time.RFC3339Nano
fileLogger := &lumberjack.Logger{
Filename: log_path,
@ -47,9 +39,11 @@ func Get() *zerolog.Logger {
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
l := zerolog.New(output).
Level(log_level).
Level(loggerLevel).
With().
Timestamp().
Stack().
CallerWithSkipFrameCount(2).
Logger()
log = &l
})

View File

@ -8,6 +8,7 @@
package logger_test
import (
"errors"
"testing"
"git.hexq.cn/tiglog/golib/gtest"
@ -18,5 +19,6 @@ func TestLogToFile(t *testing.T) {
// logger.SetupLog("./var/log/test.log", zerolog.DebugLevel)
var log = logger.Get()
gtest.NotNil(t, log)
log.Log().Msg("hello world")
err := errors.New("test error")
log.Log().Err(err).Msg("hello world")
}

View File

@ -10,11 +10,9 @@ package logger
import (
"os"
"sync"
"time"
"github.com/natefinch/lumberjack"
"github.com/rs/zerolog"
"github.com/rs/zerolog/pkgerrors"
)
var recover_once sync.Once
@ -29,8 +27,6 @@ func SetupRecoverLogFile(path string) {
func Recover() *zerolog.Logger {
recover_once.Do(func() {
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
zerolog.TimeFieldFormat = time.RFC3339Nano
fileLogger := &lumberjack.Logger{
Filename: recover_log_path,
@ -46,6 +42,8 @@ func Recover() *zerolog.Logger {
// Level(zerolog.InfoLevel).
With().
Timestamp().
Stack().
CallerWithSkipFrameCount(2).
Logger()
recover_log = &l

View File

@ -10,11 +10,9 @@ package logger
import (
"os"
"sync"
"time"
"github.com/natefinch/lumberjack"
"github.com/rs/zerolog"
"github.com/rs/zerolog/pkgerrors"
)
var work_once sync.Once
@ -29,9 +27,6 @@ func SetupWorkLogFile(path string) {
func Work() *zerolog.Logger {
work_once.Do(func() {
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
zerolog.TimeFieldFormat = time.RFC3339Nano
fileLogger := &lumberjack.Logger{
Filename: work_log_path,
MaxSize: 5, //
@ -43,9 +38,11 @@ func Work() *zerolog.Logger {
output := zerolog.MultiLevelWriter(os.Stderr, fileLogger)
l := zerolog.New(output).
Level(zerolog.InfoLevel).
Level(loggerLevel).
With().
Timestamp().
Stack().
CallerWithSkipFrameCount(2).
Logger()
work_log = &l