对于服务器开发IO的操作在高并发情况下,是需要解决的一个硬性的指标;而对于服务器而言,日志系统的设计,是和磁盘IO直接交互,并影响服务器性能的主要因素之一。
下载地址:https://github.com/xianlezheng/log4go.git
glog简介
glog是著名的google开源C++日志库,glog是一个轻量级的日志库,上手简单不需要配置文件并且稳定高效,但是可以自定义控制的内容较少。
glog主要的特点
glog有四种日志等级INFO < WARING < ERROR < FATAL,不同等级的日志是打印到不同文件的,低级的日志日志文件中(INFO)会包含高等级的日志信息(ERROR);
通过命令行传递参数—log_dir指定日志文件的存放目录,默认为os.TempDir();
可以根据文件大小切割文件,但是不能根据日期切割日志文件;
日志输出格式是固定的(Lmmdd hh:mm:ss.uuuu threadid file:line] msg…)不可以自定义;
在程序开始时需要调用flag.Parse解析命令行参数,在程序退出时需要调用glog.Flush()确保将缓存区中的内容输出到文件中。
Demo
package main
import (
"glog-master"
"flag"
)
// 初始化
func init() {
// 直接初始化,主要使服务器启动后自己直接加载,并不用命令行执行对应的参数
flag.Set("alsologtostderr", "true") // 日志写入文件的同时,输出到stderr
flag.Set("log_dir", "./log") // 日志文件保存目录
flag.Set("v", "3") // 配置V输出的等级。
flag.Parse()
}
// 主函数
func main() {
// 使用
// 退出时调用,确保日志写入文件中
// defer glog.Flush()
glog.Info("hello, glog")
glog.Warning("warning glog")
glog.Error("error glog")
// 直接刷新到文件中
glog.Flush()
return
}