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	无格式
长文件名及行数			FORMAT_LONGFILENAME	全路径
短文件名及行数			FORMAT_SHORTFILENAME	如:logging_test.go:10
精确到日期			FORMAT_DATE		如:2023/02/14
精确到秒				FORMAT_TIME		如:01:33:27
精确到微秒			FORMAT_MICROSECNDS

打印结果形如:[DEBUG]2023/02/14 01:33:27 logging_test.go:10: 11111111111111
若需要自定义格式 只需要 SetFormat(FORMAT_NANO) ,既可以去掉原有格式。

日志级别

ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF
默认日志级别为ALL,说明:

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

需将日志写入文件时,则要设置日志文件名
使用全局对象log时,直接调用设置方法:

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

需要多实例指定不同日志文件时:

log1 := logger.NewLogger()
log1.SetRollingDaily("", "logMonitor.log")
 
log12:= logger.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)控制台打印信息,默认true
Debug("11111111")
Info("22222222")
SetFormat(FORMAT_DATE | FORMAT_SHORTFILENAME) //设置后,下面日志格式只打印日期+短文件信息
Warn("333333333")
SetLevel(FATAL) //设置为FATAL后,下面Error()级别小于FATAL,将不打印出来
Error("444444444")
Fatal("5555555555")

/*获取新的log实例,要求不同日志文件时,使用多实例对象*/
log := NewLogger()
/*按日期分割日志文件*/
//log.SetRollingDaily("", "log.txt")	
/*按日志文件大小分割日志文件*/
// log.SetRollingFile("", "log.txt", 3, MB)
/* 设置打印级别 OFF,DEBUG,INFO,WARN,ERROR,FATAL*/
//log.SetLevel(ALL) 默认ALL.

/* 日志写入文件时,同时在控制台打印出来,设置为false后将不打印在控制台,默认值true*/
// log.SetConsole(false)
log.Debug("aaaaaaaaaaaaa")
log.SetFormat(FORMAT_LONGFILENAME) //设置后将打印出文件全部路径信息
log.Info("bbbbbbbbbbbb")
log.SetFormat(FORMAT_MICROSECNDS | FORMAT_SHORTFILENAME)//设置日志格式,时间+短文件名
log.Warn("ccccccccccccccc")
log.SetLevel(FATAL) //设置为FATAL后,下面Error()级别小于FATAL,将不打印出来
log.Error("dddddddddddd")
log.Fatal("eeeeeeeeeeeee")

项目地址:https://github.com/donnie4w/go-logger


相關推薦

2023-10-09

go-logger v2.0.3发布,该版本主要针对性能进行优化.  github地址:https://github.com/donnie4w/go-logger  go的结构化日志库非常多,go-logger是比较早期开发的一个库, 以简洁为主要特征。simplelog是后期给数据库binlog日志开发的一个

2023-12-19

iRTU v2.0.1 已经发布,DTU/RTU 解决方案 此版本更新内容包括: 1、新增了阿里云企业版 2、对单次http和http网络通道进行了优化 3、新增了onenet新版 4、对单次http进行了优化 5、对单次tcp进行了优化,连接失败超过一定次数会返

2024-01-16

本次更新,主要解决了: 🍀 reuseport 引起的access log api 显示listen ip 端口重复的Bug; 🍀 njet启动后,直接访问prometheus 格式的metrics 地址出错; 🍀配置了stream map,多次reload 出现core 等问题。 🤞更多详情:https://gitee.com

2023-06-27

钟内就能搭建自己的工作流引擎。 V2.0.1版本介绍 自从发布了第一个版本之后,很多小伙伴反馈前端为啥不开源,限制了使用场景~本人和团队商量之后,加班加点赶了一版开源版本出来,现在正式放出来了,欢迎大家体验。

2022-10-02

密评要求。         此次发布的为 v2.0.1 正式版本,具体更新内容如下: 1.【新增】新增easyTrans和typehandel来替代 传统的join表和加解密 2.【更新】关闭satoken的最大登录限制 3.【修复】修复issues中单

2023-09-25

开发者在用 React 开发时面临的一些棘手问题。v2.0.1 现已发布,具体更新内容包括: Patch Changes 修复使用 pnpm 时 MDX 文件的类型 ( #7491 ) 更新getDependenciesToBundle以处理没有 main exports 的 ESM 包 ( #7272 ) 注意,这

2023-04-25

sms4j V2.0.1版本正式发布 该版本中包含了一些重要的更新和改进,以提高框架的性能、可靠性和用户体验。在这里,我们将详细介绍这些更新内容。 数据库刷新和读取的方法进行了优化 为了提高系统的性能,我们对数据

2023-09-19

安全代码(code)自定义配置(增强安全性控制)  发布安卓APK版本  自动检查更新版本 1.2 PC操作截图 主界面(功能说明) 主界面(列表模式、文件菜单) 主界面(列表模式) 手机扫码(到主界

2022-09-20

一、简介 mica-mqtt 基于 t-io 实现的简单、低延迟、高性能 的 mqtt 物联网开源组件。mica-mqtt 更加易于集成到已有服务和二次开发,降低自研物联网平台开发成本。 二、功能 支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。 支持 websocket

2023-02-25

开源 3D 建模软件 Blender 三年前开始执行每季度发布一次重要更新的策略,也就是每年发布 4 个重要版本。现在官方决定转变为每年只发布 3 个重要版本。 根据团队的介绍,未来 Blender 每年仅发布 3 个重要版本,其中一个将成为

2023-11-27

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技

2023-03-27

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Ja

2023-06-08

特别说明 平台公云版及企业私云版已经发布,增加多人团队协作支持,点击这里了解 [PDManer 元数建模 - v4],历时五年,持续升级,工匠精神,做一款简单好用的数据库建模平台。 元数建模平台,使用 React+Electron+Java 技

2022-11-28

ner 元数建模软件 (v4 版本)介绍:PDManer [元数建模]-v4.0.0 发布:一款简单好用的数据库建模平台 4.2.2 (含 4.2.1 版本) 版本升级内容清单 1. 修复代码生成是索引信息错误的问题 2. 修复某些场景下重复粘贴的问题 3. 生成 html