在java语言里面我们经常会涉及到使用log4j来输出日志,这样子在线上项目运行的时候,日志直接打印到日志文件里面,然后通过ELK进行收集,最后在kibana里面查看日志即可。在go语言里面其实我们也会有这个需求,所以这篇文字我们来介绍下go语言里面的日志输出。
在go语言里面,日志输出框架比较多,对于我个人来说,还是比较喜欢zaplog这个框架,因为用起来比较简单。下面我们来演示一下:
引入zaplog依赖
import ( logs "github.com/openownworld/go-utils/log/zaplog" )
创建配置文件
这里的话我们直接在根目录里面创建一个log.ini的文件,然后把下面的内容复制进去即可:
#json log key serviceName = testService #自定义时间格式 2006-01-02 15:04:05.000 customTimeEnable = false #日志文件路径 logFileName = ./logs/log.log errorFileName = ./logs/error.log #MaxBackups和MaxAge 任意达到限制,对应的文件就会被清理,maxSize和maxBackups计算出最大日志总量,在最大天数内不超过日志总量 #最大文件大小 M字节 maxSize = 50 #最多保留30个备份 maxBackups = 30 #最多保留多少天 maxDays = 30 #开启日志压缩 compress = true #日志级别 debug info warn error dpanic panic fatal level = debug #打印堆栈跟踪日志级别 stacktraceLevel = panic #分开写的错误文件级别warn和error errorFileLevel = warn #日志开启关闭 fileLogger = true consoleLogger = true fileLoggerJSON = true consoleLoggerJSON = true
这里的配置的话,我们根据实际情况进行修改即可,比较简单,一般我除了修改servicename之外,其他的配置几乎都保持默认。
初始化log
在java语言里面我们会涉及到new一个log的instance,例如:
private static final Logger LOGGER = LoggerFactory.getLogger(GoodController.class);
在go语言里面我们也需要初始化这个log的instance,这里的话,一般我们在init方法里面初始化即可,示例如下:
func init() { //初始化日志 err := logs.InitLoggerFile("./log.ini") if err != nil { fmt.Printf("InitLoggerFile error:%v", err) return } }
这里的初始化其实主要是配置下读取配置文件,比较简单。
打印日志
最后我们就可以直接使用日志打印了,示例代码如下:
logs.Info("test log")
最后我们看下效果图:
可以看到打印出来了日志,同时在根目录下也生成了logs文件:
以上就是在go语言中进行日志输出的案例。最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...