beego框架-logs模块学习笔记

本文详细介绍Beego框架下logs模块的使用方法,包括控制台输出、文件输出、控制台和文件同时输出、网络传输及邮件发送等场景,并解析日志级别及函数行号打印深度的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前一段时间的项目中用到了beego框架下的logs模块,记录一下使用过程。logs模块官方文档

一、示例

1、控制台输出

//控制台输出
func Console() {
	log := logs.NewLogger()
	log.SetLogger(logs.AdapterConsole)
	//设置打印函数及行号
	log.EnableFuncCallDepth(true)
	log.Debug("log1---> my book is bought in the year of ")
	log.Critical("log1---> oh,crash")
}

2、文件输出

//文件输出
func ToFile() {
	log := logs.NewLogger()
	log.SetLogger(logs.AdapterFile, `{"filename":"log2.log","maxlines":1000,"maxsize":1000,"daily":true,"maxdays":10,"color":true}`)
	//l.SetLogger(logs.AdapterFile, `{"filename":"project.log","level":7,"maxlines":1000,"maxsize":1000,"daily":true,"maxdays":10,"color":true}`)
	log.EnableFuncCallDepth(true)
	log.SetLogFuncCallDepth(2)

	log.Debug("log2---> my book is bought in the year of ")
	log.Critical("log2---> oh,crash")
}

文件格式说明:
在这里插入图片描述
3、控制台和文件同时输出

//控制台,文件同时输出
func consoleAndFile() {
	log := logs.NewLogger()

	log.SetLogger(logs.AdapterConsole)
	log.SetLogger(logs.AdapterFile, `{"filename":"log3-6.log","level":6,"maxlines":1000,"maxsize":1000,"daily":true,"maxdays":10,"color":true}`)

	log.EnableFuncCallDepth(true)
	log.SetLogFuncCallDepth(2)
	//log.Async(1e3)

	//1-7级别递减,默认是trace,显示当前数字以前的级别,例如:3时,显示【Emergency】【Alert】【Critical】【Error】
	log.Emergency("log3--->Emergency")
	log.Alert("log3--->Alert")       //1
	log.Critical("log3--->Critical") //2
	log.Error("log3--->Error")       //3
	log.Warn("log3--->Warning")      //4
	log.Notice("log3--->Notice")     //5
	log.Info("log3--->Info")         //6
	log.Debug("log3--->Debug")       //7
	log.Trace("log3--->Trace")
}

日志级别说明:
例如:3时,显示【Emergency】【Alert】【Critical】【Error】
在这里插入图片描述
4、网络传输

//网络数据
func conn() {
	log := logs.NewLogger()
	//udp 传输到本地端口7020
	//将日志通过tcp的传输方式发送到ip为172.20.36.141,端口为:7020的主机上
	log.SetLogger(logs.AdapterConn, `{"net":"tcp","addr":"172.20.36.141:7020"}`)
	log.EnableFuncCallDepth(true)
	log.SetLogFuncCallDepth(2)
	log.Emergency("log4--->Emergency")
}

tcp时logs端作为客户端连接远端服务
在这里插入图片描述
udp时直传数据:
在这里插入图片描述
5、邮件发送

//邮件发送
func smtp() {
	log := logs.NewLogger()
	log.SetLogger(logs.AdapterMail, `{"username":"luciferofwg@gmail.com","password":"xxxxxxxxx","host":"imap.gmail.com:993","sendTos":["958730879@qq.com"]}`)
	log.EnableFuncCallDepth(true)
	log.SetLogFuncCallDepth(2)
	log.Emergency("log5--->Emergency")
}

二、小结

1、函数行号打印深度
默认是2,对logs模块封装后可以通过修改该值来改变函数及行号的深度

log.SetLogFuncCallDepth(`深度`)

三、完成代码

完成代码

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值