| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package main
- import (
- log "github.com/sirupsen/logrus"
- "os"
- )
- // logrus提供了New()函数来创建一个logrus的实例。
- // 项目中,可以创建任意数量的logrus实例。
- var logger = log.New()
- type DefaultFieldHook struct {
- }
- func NewDefaultFieldHook() (*DefaultFieldHook) {
- return &DefaultFieldHook{}
- }
- func (hook *DefaultFieldHook) Fire(entry *log.Entry) error {
- //在所有级别的日志消息中加入默认字段appName="myAppName"
- entry.Data["appName"] = "MyAppName"
- return nil
- }
- func (hook *DefaultFieldHook) Levels() []log.Level {
- return log.AllLevels
- }
- func main() {
- hook := NewDefaultFieldHook()
- logger.Hooks.Add(hook)
- // 为当前logrus实例设置消息的输出,同样地,
- // 可以设置logrus实例的输出到任意io.writer
- logger.Out = os.Stdout
- // 为当前logrus实例设置消息输出格式为json格式。
- // 同样地,也可以单独为某个logrus实例设置日志级别和hook,这里不详细叙述。
- logger.Formatter = &log.JSONFormatter{}
- logger.WithFields(log.Fields{
- "animal": "walrus",
- "size": 10,
- }).Info("A group of walrus emerges from the ocean")
- }
|