之前做服务的时候一直在用seelog作为日志输出的库,用了一段时间发现还是挺好用的,最近有时间就来总结一下。
我这边用到的seelog一般都是将程序中的一些信息输入到日志文件中,方便调试和维护程序。日志中输出的基本信息有时间,日志等级,代码行数,方法名等等。输出日志的格式是通过XML配置文件完成的,这样日志内容的修改就不需要重新去编译程序。seelog功能比较强大除了这些特性还可以按照过滤条件输出,控制台输出等,感兴趣的同学可以去了解一下。链接如下,seelog
下面介绍一下seelog的相关配置,seelog中方法LoggerFromConfigAsFile()就是用来读取配置文件的,方法的参数为配置文件的路径。配置文件格式为xml,下面举个栗子:
<seelog minlevel="trace">
<outputs formatid="common">
<rollingfile type="size" filename="/var/log/test/test.log" maxsize="100" maxrolls="5"/>
</outputs>
<formats>
<!--
<format id="common" format="%Date %Time %EscM(46)[%LEV]%EscM(49)%EscM(0) [%File:%Line] [%Func] %Msg%n" />
-->
<format id="common" format="%Date %Time [%LEV] [%File:%Line] [%Func] %Msg%n" />
</formats>
</seelog>
其中,outputs 是对日志的设置,format 是对输出格式的设置
minlevel—为日志输出的最低的等级,可以通过调整日志输出等级来对日志信息做出筛选,这也要求在编码时对日志输出的分类要明确。
rollingfile type—为日志回滚的方式,例子中为按写文件的大小进行,也可按照日期进行,按日期的对应配置为date。而且按照日期配置的话需要在配置一下日期格式datepattern–例如“2016.07.19”
filename—文件存储的路径
maxsize—文件最多的行数
maxrolls–日志保存的最大期限,此处会保存30天以内的日志(这个时间我还没有测过),如果是size的话就是文件个数
formate中的格式为包含了日期,时间,文件名,行数,函数名,输出的日志信息
这边是写了一个使用的例子
需要注意的是结束的时候要用Flush()函数