2
0
Files
2026-03-29 18:14:41 +03:00

1.1 KiB

Rotate Hook

This is a simple hook for logrus logrus to write log files using gopkg/lumberjack

Usage

import (
	"git.corp.kornet35.ru/gopkg/logrus"
	"git.corp.kornet35.ru/gopkg/nested"
	"git.corp.kornet35.ru/gopkg/rotatehook"
	"github.com/mattn/go-colorable"
)

log := &logrus.Logger{
	Out: colorable.NewColorableStdout(),
	Formatter: &nested.Formatter{
		TimestampFormat: "2006-01-02 15:04:05",
		HideKeys:        true,
	},
	Hooks: make(logrus.LevelHooks),
	Level: logrus.InfoLevel,
}

hook := rotatehook.NewRotateHook(&rotatehook.Config{
	Filename:   "debug.log",
	MaxSize:    5,
	MaxAge:     30,
	MaxBackups: 10,
	LocalTime:  true,
	Compress:   true,
	FileMode:   0o644,
	Formatter: &nested.Formatter{
		TimestampFormat: "2006-01-02 15:04:05",
		HideKeys:        true,
		NoColors:        true,
	},
	Level:   logrus.DebugLevel,
	Enabled: true,
})

log.AddHook(hook)

log.Infoln("just info message")
log.Debugln("first debug message")

hook.SetEnabled(false)
log.Debugln("second debug message")