在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
折腾: 【已解决】go语言中实现log信息同时输出到文件和控制台(命令行) 期间,已经通过io的MultiWriter搞定了同时输出信息到文件和console,但是不支持level。 所以,再去试试这个log4go。 github.com/keepeye/log4go
【折腾过程】 1.大概看了看,貌似功能很强大。 有点类似于之前的C#的NLog,为C#的log功能扩展; 此处log4go,是针对go语言的log功能的扩展。 2.此log4go,是go语言的第三方的包,所以,先要去搞懂: 【记录】go语言中安装第三方包package(库):log4go 3.安装完毕后,再去参考官网的: http://code.google.com/p/log4go/wiki/GettingStarted 去看看如何使用。 4.先去导入:
结果是:
这说明: 正确导入了(但只是暂时还没去使用而已) 5.接着去使用。 用如下代码:
效果是: 6.看到其解释了: 上述用的,是默认的,已经实现了的,对于console的log 默认配置为:DEBUG的level:debug及以上的level都显示。 所有的level,依次是:Finest, Fine, Debug, Trace, Info, Warning, Error, Critical 而此处,我想要实现: (1)重新更改此console的level为Info (2)添加此处的log文件作为输出,且设置level所有,即最低一级的Finest 7.先去添加log文件: 但是想要去看对应的文档的,结果原先作者的说明: 先去:
(我此处实际上本身已经打开godoc的server了) 再去打开地址: http://localhost:6060/pkg/log4go.googlecode.com/svn/stable/ 结果肯定不对的。 后来经过自己的分析,去访问: http://localhost:6060/pkg/code.google.com/p/log4go/ 就可以了。 8.去看看对应的: http://localhost:6060/pkg/code.google.com/p/log4go/#AddFilter 内容是:
去试试代码。 结果基本实现了所要的效果: 即: 对于代码中debug信息,只在文件中显示 对于info及以上的信息,console和文件,都显示。 实现了level的自定义。 9.目前,唯一一个小问题,不是我喜欢的: 对于,我经常调试程序, 希望每次重新运行时,对于log文件,都自动清空。 而不要对于log文件是APPEND模式: 每次的输出,都添加到后面。 而不清空log文件。 10.所以,再去想办法,新建log时,判断是否已经存在文件,如果存在去删除掉:
【总结】 最终,基本实现了全部的效果: 1.每次运行程序,可以OVERWRITE旧的log文件,而不是APPEND 2.可以同时输出内容到log文件和console 3.且console和log文件的输出level都可以配置: 此处要的是: INFO及以上的,都可以在console中显示; 全部信息(包括debug),都可以在log文件中显示。 全部代码如下:
效果是:
console中输出的内容:
log文件中输出的内容:
整体效果还不错的说。 |
请发表评论