Last active
August 22, 2023 08:19
-
-
Save winston-wen/66718f95ef3c82313f5bbf797f286edc to your computer and use it in GitHub Desktop.
Typical logging in Golang.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package main | |
| import ( | |
| "os" | |
| "go.uber.org/zap" | |
| "go.uber.org/zap/zapcore" | |
| lbj "gopkg.in/natefinch/lumberjack.v2" | |
| ) | |
| var log_level zap.AtomicLevel = zap.NewAtomicLevelAt(zap.InfoLevel) | |
| func InitLogger() { | |
| w := zapcore.AddSync(&lbj.Logger{ | |
| Filename: "logs/app_name.log", | |
| MaxSize: 4, // MB per file | |
| // 15 old files and 1 new file. The new file has no suffix. | |
| MaxBackups: 15, | |
| }) | |
| w2 := zapcore.NewMultiWriteSyncer(w, zapcore.AddSync(os.Stdout)) | |
| conf_enc := zap.NewProductionEncoderConfig() | |
| conf_enc.LevelKey = "lv" | |
| conf_enc.CallerKey = "pos" | |
| conf_enc.EncodeTime = zapcore.ISO8601TimeEncoder | |
| core := zapcore.NewCore( | |
| zapcore.NewJSONEncoder(conf_enc), | |
| w2, | |
| log_level, | |
| ) | |
| log := zap.New(core) | |
| zap.ReplaceGlobals(log) | |
| } | |
| func main() { | |
| InitLogger() | |
| defer zap.S().Sync() | |
| log_level.SetLevel(zap.DebugLevel) | |
| for i := 0; i < 114514; i++ { | |
| for j := 0; j < 1919; j++ { | |
| zap.S().Debugw("test", "i", i, "j", j) | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment