• 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

      

  • 相关阅读:
    WPF PrismDialog PopupWindowAction使用MetroWindow
    WPF 定义Lookless控件的默认样式、 OnApplyTemplate 如何使用(实现方式、如何工作的)!
    WPF MeasureOverride和 ArrangeOverride做个 页面导航
    MeasureOverride和ArrangeOverride 练手项目
    XAML 调试工具 不见了?
    未能加载文件或程序集,PublicKeyToken=“**********”,或它的某一个依赖项。强名称验证失败。
    .NET 中的 GAC
    软考过程知识整理记录
    定时执行exe、windows任务计划、windows服务
    为视图或函数指定的列名比其定义中的列多。
  • 原文地址:https://www.cnblogs.com/hetonghai/p/6476439.html
Copyright © 2020-2023  润新知