Golang日志--Seelog的简单用法
stevefang · · 10487 次点击 · · 开始浏览Beego自带的log包虽然功能比较完善,但是在日志中会带上日志级别的时间戳,而且这个时间戳还删除不了。
因为项目需要,所以研究了下Golang中其他的日志包,发现seelog正好能满足俺们项目的需要,因此在这做简单介绍。
seelog的地址:"github.com/cihub/seelog"
seelog功能强大,在此简单介绍将日志配置保存在xml文件中,并从文件中获取配置,然后使用的流程。
在controllers包的某个文件中:
mainlog, _ = seelog.LoggerFromConfigAsFile("conf/seelog-main.xml")LoggerFromConfigAsFile会从后面的文件中获取日志配置,如上则是从conf包的seelog-main.xml文件中获取配置;seelog-main.xml文件内容如下:
<seelog> <outputs formatid="main"> <buffered size="10000" flushperiod="1000"> <rollingfile type="date" filename="/var/log/main.log" datepattern="2006年01月02日" maxrolls="30"/> </buffered> </outputs> <formats> <format id="main" format="%Msg%n"/> </formats> </seelog>
其中:
outputs里面是日志的配置,formats里面是日志输出格式配置。
formatid对应下面的formats里对应id的输出格式。
buffered指的是缓冲设置:
size--缓冲区大小,单位byte;flushperiod--缓冲间隔,单位ms
rollingfile里面是日志的设置:
type--回滚的方式,date指按日期回滚,size指按大小回滚
filename--文件路径
datepattern--日期的格式,按日期回滚时才会有此选项
maxrolls--日志保存的最大期限,此处会保存30天以内的日志
format里面:
id--对应的outputs的formatid
format--日志输出的格式,%Msg%n表示只会输出日志并换行
使用的时候,如下:
defer mainlog.Flush()
mainlog.Info("需要输入的日志")即可。以后会完善seelog的用法有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
Beego自带的log包虽然功能比较完善,但是在日志中会带上日志级别的时间戳,而且这个时间戳还删除不了。
因为项目需要,所以研究了下Golang中其他的日志包,发现seelog正好能满足俺们项目的需要,因此在这做简单介绍。
seelog的地址:"github.com/cihub/seelog"
seelog功能强大,在此简单介绍将日志配置保存在xml文件中,并从文件中获取配置,然后使用的流程。
在controllers包的某个文件中:
mainlog, _ = seelog.LoggerFromConfigAsFile("conf/seelog-main.xml")LoggerFromConfigAsFile会从后面的文件中获取日志配置,如上则是从conf包的seelog-main.xml文件中获取配置;seelog-main.xml文件内容如下:
<seelog> <outputs formatid="main"> <buffered size="10000" flushperiod="1000"> <rollingfile type="date" filename="/var/log/main.log" datepattern="2006年01月02日" maxrolls="30"/> </buffered> </outputs> <formats> <format id="main" format="%Msg%n"/> </formats> </seelog>
其中:
outputs里面是日志的配置,formats里面是日志输出格式配置。
formatid对应下面的formats里对应id的输出格式。
buffered指的是缓冲设置:
size--缓冲区大小,单位byte;flushperiod--缓冲间隔,单位ms
rollingfile里面是日志的设置:
type--回滚的方式,date指按日期回滚,size指按大小回滚
filename--文件路径
datepattern--日期的格式,按日期回滚时才会有此选项
maxrolls--日志保存的最大期限,此处会保存30天以内的日志
format里面:
id--对应的outputs的formatid
format--日志输出的格式,%Msg%n表示只会输出日志并换行
使用的时候,如下:
defer mainlog.Flush()
mainlog.Info("需要输入的日志")即可。以后会完善seelog的用法