go-logger 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
go-logger 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
go-logger 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 donnie4w
适用人群 未知
收录时间 2014-02-28

软件简介

go-logger 是golang 的高性能日志库


日志级别打印:

调用 Debug(),Info(),Warn(), Error() ,Fatal() 级别由低到高

设置日志打印格式:

如: SetFormat(FORMAT_SHORTFILENAME|FORMAT_DATE|FORMAT_TIME)

FORMAT_SHORTFILENAME|FORMAT_DATE|FORMAT_TIME 为默认格式

不调用SetFormat()时,使用默认格式

不格式化,只打印日志内容		FORMAT_NANO		无格式
长文件名及行数			FORMAT_LONGFILENAME	全路径
短文件名及行数			FORMAT_SHORTFILENAME	如:logging_test.go:10
精确到日期			FORMAT_DATE		如:2023/02/14
精确到秒				FORMAT_TIME		如:01:33:27
精确到微秒			FORMAT_MICROSECNDS	如:01:33:27.123456

打印结果形如:

[DEBUG]2023/02/14 01:33:27 logging_test.go:10: 11111111111111

日志级别

DEBUG < INFO < WARN < ERROR < FATAL

关闭所有日志 SetLevel(OFF)

说明:

若设置 INFO
如:SetLevel(INFO)
则 所有 Debug("*********")   不再打印出来
所以调试阶段,常设置为默认级别ALL,或DEBUG,打印出项目中所有日志,包括调试日志
若设置 OFF
SetLevel(OFF)
则 所有日志不再打印出来
所以正式环境,常设置为ERROR或以上的日志级别,项目中Debug(),Info(),warn()等日志不再打印出来,具体视实际需求设置

需将日志写入文件时,则要设置日志文件

使用全局log对象时,直接调用设置方法:

SetRollingDaily()		按日期分割
SetRollingByTime()		可按 小时,天,月 分割日志
SetRollingFile()		指定文件大小分割日志
SetRollingFileLoop()		指定文件大小分割日志,并指定保留最大日志文件数
SetGzipOn(true)			压缩分割的日志文件 

多实例:

log1 := NewLogger()
log1.SetRollingDaily("", "logMonitor.log")
 
log12:= NewLogger()
log2.SetRollingDaily("", "logBusiness.log")

1. 按日期分割日志文件

log.SetRollingDaily("d:/foldTest", "log.txt")
每天按 log_20221015.txt格式 分割
若 log_20221015.txt已经存在,则生成 log_20221015.1.txt ,log_20221015.2.txt等文件

log.SetRollingByTime("d:/foldTest", "log.txt",MODE_MONTH)
按月份分割日志,跨月时,保留上月份日志,如:
	log_202210.txt
	log_202211.txt
	log_202212.txt

log.SetRollingByTime("d:/foldTest", "log.txt",MODE_HOUR)
按小时分割日志, 如:
	log_2022101506.txt
	log_2022101507.txt
	log_2022101508.txt

2. 按文件大小分割日志文件

log.SetRollingFile("d:/foldTest", "log.txt", 300, MB)
当文件超过300MB时,按log.1.txt,log.2.txt 格式备份
目录参数可以为空,则默认当前目录。

log.SetRollingFileLoop(`d:/foldTest`, "log.txt", 300, MB, 50) 
设置日志文件大小最大为300M
日志文件只保留最新的50个

控制台日志设置

全局log:SetConsole(false)控制台不打日志,默认值true
实例log:log.SetConsole(false)控制台不打日志,默认值true

打印日志示例:

//SetRollingFile("", "log.txt", 1000, KB)  设置日志文件信息
//SetRollingFileLoop(``, "log.txt", 300, MB, 50)   设置日志文件大小300M,最多保留50个最近的日志文件
//SetRollingByTime(``, "log.txt", MODE_MONTH) 按月份分割日志
//SetRollingByTime(``, "log.txt", MODE_HOUR)  按小时分割日志
//SetRollingByTime(``, "log.txt", MODE_DAY)  按天分割日志与调用SetRollingDaily("", "log.txt") 作用相同


//控制台不打印
// SetConsole(false)

Debug("00000000000")
//默认格式:[DEBUG]2023/07/10 18:40:49 logging_test.go:12: 00000000000

SetFormat(FORMAT_NANO) 
Debug("111111111111")
//设置格式(无格式化):111111111111

SetFormat(FORMAT_LONGFILENAME) 
Info("22222222")
//设置格式(长文件路径) :[INFO]/usr/log/logging/logging_test.go:14: 22222222

SetFormat(FORMAT_DATE | FORMAT_SHORTFILENAME) 
Warn("333333333")
//设置格式(日期+短文件路径) :[WARN]2023/07/10 logging_test.go:16: 333333333

SetFormat(FORMAT_DATE | FORMAT_TIME) /
Error("444444444")
/设置格式 :[ERROR]2023/07/10 18:35:19 444444444

SetFormat(FORMAT_SHORTFILENAME)
Fatal("5555555555")
//设置格式 :[FATAL]logging_test.go:21: 5555555555

SetFormat(FORMAT_TIME)
Fatal("66666666666")
//设置格式 :[FATAL]18:35:19 66666666666

校正打印时间

//修改TIME_DEVIATION可以校正日志打印时间,单位纳秒
TIME_DEVIATION 
展开阅读全文

代码

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
06/05 10:58

高性能日志库 go-logger 2.0.5 发布

前言:go-logger 是一个轻量级的日志库,提供了灵活的日志记录功能与文件备份功能,方便在应用程序中灵活地操作日志。 go-logger特点 日志级别设置:允许动态调整日志级别,以便在不同环境下控制日志的详细程度。 格式化输出:支持自定义日志的输出格式,包括时间戳、日志级别、日志位置 等元素。 文件数回滚:支持按照日志文件数自动文件回滚,并防止文件数过多。 文件压缩:支持压缩归档日志文件。 支持标准库log/slog日志文件...

0
0
发表了资讯
05/14 11:11

高性能日志库 go-logger 2.0.4 发布,支持 slog 日志文件切割

go-logger v2.0.4 发布 该版本主要支持go原生日志库 log/slog 的日志文件切割,压缩等功能。 log/slog 库是 Go 语言用于结构化日志记录的一个强大工具,它旨在提升日志的管理和分析能力,同时保证代码的简洁性和执行效率。随着 Go 语言生态的发展,slog 正逐渐成为处理日志的新标准。 log/slog 专注于提供结构化日志的生成与处理逻辑,包括日志级别控制、键值对数据的记录等,但它并不直接内置文件处理功能,如日志文件的分割、...

1
4
发表了资讯
2023/10/08 11:21

高性能日志库 go-logger v2.0.3 发布

go-logger v2.0.3发布,该版本主要针对性能进行优化. github地址:https://github.com/donnie4w/go-logger go的结构化日志库非常多,go-logger是比较早期开发的一个库, 以简洁为主要特征。simplelog是后期给数据库binlog日志开发的一个日志库,由于功能与go-logger有重合,就把两个库的代码就合并了。目前两个库代都会一起更新,实现是一致的。 go1.21版本就在标准库加上结构化日志库log/slog,该日志库性能非常优越,根据压测结...

1
2
发表了资讯
2023/07/21 00:23

go-logger 2.0.2 发布

golang 的高性能日志库 go的高性能日志工具,支持日志格式化,日志按时间备份,或按大小备份,支持保留日志份数,日志文件压缩等特性. github.com/donnie4w/go-logger go-logger具备极高的性能和极低的内存消耗 性能测试中,在常规操作下,使用格式化输出,相同长度的打印数据。 与 uber的zap日志库,和 go自带的log日志库 相比较, go-logger 在性能上和内存消耗上都占据一定优势 同时也支持将需要分配内存的的功能完全去掉(使...

0
4
发表了资讯
2023/05/15 01:05

go-logger v2.0.1发布

go-logger 是golang 的极简日志库 日志打印:调用 Debug(),Info(),Warn(), Error() ,Fatal() 日志级别由低到高 级别概念 功能用法类似java日志工具log4j 或 python的logging 设置日志打印格式: 如: SetFormat(FORMAT_SHORTFILENAME|FORMAT_DATE|FORMAT_TIME) FORMAT_SHORTFILENAME|FORMAT_DATE|FORMAT_TIME 为默认格式 不调用SetFormat()时,使用默认格式 无其他格式,只打印日志内容  FORMAT_NANO  无格式 长文件名及行数...

4
5
发表了资讯
2018/04/23 18:30

go-logger 日志工具包 v1.2 发布

go-logger 一个简单而强大的 golang 日志工具包 功能 支持同时输出到 console, file, url 命令行输出字体可带颜色 文件输出支持根据 文件大小,文件行数,日期三种方式切分 文件输出支持根据日志级别分别保存到不同的文件 支持异步和同步两种方式写入 支持 json 格式化输出 代码设计易扩展,可根据需要设计自己的 adapter 本次更新 修复日志根据级别输出到不同文件的一些bug 修改日志切分后,文件命名由随机字符串改为时间戳后缀...

2
18
发表了资讯
2018/03/23 12:24

go-logger 日志工具包 v1.1 发布

go-logger 一个简单而强大的 golang 日志工具包 English document 更新 重构了日志输出文件 输出到文件支持根据日志级别输出到不同的日志文件 功能 支持同时输出到 console, file, url 命令行输出字体可带颜色 文件输出支持根据 文件大小,文件行数,日期三种方式切分 文件输出支持根据日志级别分别保存到不同的文件 支持异步和同步两种方式写入 支持 json 格式化输出 代码设计易扩展,可根据需要设计自己的 adapter 安装使用 ...

8
13
发表了资讯
2017/07/17 10:34

Golang 日志库 go-logger 1.0.3 版本发布

go-logger 是golang 的日志库 ,基于对golang内置log的封装。 用法类似java日志工具包log4j 打印日志有5个方法 Debug,Info,Warn, Error ,Fatal 日志级别由低到高 设置日志级别的方法为:logger.SetLevel() 如:logger.SetLevel(logger.WARN) 则:logger.Debug(....),logger.Info(...) 日志不会打出,而 logger.Warn(...),logger.Error(...),logger.Fatal(...)日志会打出。 设置日志级别的参数有7个,分别为:ALL,DEBUG,INF...

6
26
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
50 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部