zoukankan      html  css  js  c++  java
  • NATS源代码之logger目录

    nats的logger目录文件如下

    log.go

    syslog.go

    syslog_windows.go

    基于golang语言的logger包实现日志功能。

    Golang的log包短小精悍,可以非常轻松的实现日志打印转存功能。不用多说,log支持并发操作(即协程安全-相对于Java中的线程安全而言),其结构定义如下:

    type Logger struct {
    	mu     sync.Mutex // ensures atomic writes; protects the following fields
    	prefix string     // prefix to write at beginning of each line //  日志行前缀
    	flag   int        // properties // 日志打印格式标志,用于指定每行日志的打印格式
    	out    io.Writer  // destination for output // 用于指定日志输出位置,理论上可以是任务地方,只要实现了io.Writer接口就行
    	buf    []byte     // for accumulating text to write // 日志内容
    }
    

    打印日志有5个方法 Debug,Info,Warn, Error ,Fatal 日志级别由低到高

    设置日志级别的方法为:logger.SetLevel() 如:logger.SetLevel(logger.WARN)
    则:logger.Debug(....),logger.Info(...) 日志不会打出,而
    logger.Warn(...),logger.Error(...),logger.Fatal(...)日志会打出。
    设置日志级别的参数有7个,分别为:ALL,DEBUG,INFO,WARN,ERROR,FATAL,OFF
    其中 ALL表示所有调用打印日志的方法都会打出,而OFF则表示都不会打出。

    日志文件切割有两种类型:1为按日期切分。2为按日志大小切分。
    按日期切分时:每天一个备份日志文件,后缀为 .yyyy-MM-dd
    过0点是生成前一天备份文件

    按大小切分是需要3个参数,1为文件大小,2为单位,3为文件数量
    文件增长到指定限值时,生成备份文件,结尾为依次递增的自然数。
    文件数量增长到指定限制时,新生成的日志文件将覆盖前面生成的同名的备份日志文件。

    log.go

    // SysLogger logs to the windows event logger
    type SysLogger struct {
    	writer *eventlog.Log
    	debug  bool
    	trace  bool
    }
    

    提供两种模式,基于两个函数: NewStdLogger  NewFileLogger

    syslog.go

    // SysLogger provides a system logger facility
    type SysLogger struct {
    	writer *syslog.Writer
    	debug  bool
    	trace  bool
    }
    

    基于 log.syslog,提供两个函数: NewSysLogger  NewRemoteSysLogger 支持远程日志功能

    syslog包为系统日志服务提供了一个简单的接口。

    syslog_windows.go

    基于"golang.org/x/sys/windows/svc/eventlog"实现向windows系统写入事件

    // SysLogger logs to the windows event logger
    type SysLogger struct {
    	writer *eventlog.Log
    	debug  bool
    	trace  bool
    }
    

    提供两个函数: NewSysLogger  NewRemoteSysLogger

      

  • 相关阅读:
    UVA1349 Optimal Bus Route Design 最优巴士路线设计
    POJ3565 Ants 蚂蚁(NEERC 2008)
    UVA1663 Purifying Machine 净化器
    UVa11996 Jewel Magic 魔法珠宝
    NEERC2003 Jurassic Remains 侏罗纪
    UVA11895 Honorary Tickets
    gdb调试coredump(使用篇)
    使用 MegaCLI 检测磁盘状态并更换磁盘
    员工直接坦诚直来直去 真性情
    山东浪潮超越3B4000申泰RM5120-L
  • 原文地址:https://www.cnblogs.com/hetonghai/p/6476439.html
Copyright © 2011-2022 走看看