beego/logs模块的使用
1. 通用方式
首先引入包:
import ( "github.com/astaxie/beego/logs" )
然后添加输出引擎(log 支持同时输出到多个引擎),这里我们以 console 为例,第一个参数是引擎名(包括:console、file、conn、smtp、es、multifile)
// SetLogger provides a given logger adapter into BeeLogger with config string.
// config need to be correct JSON as string: {"interval":360}.
logs.SetLogger("console")
添加输出引擎也支持第二个参数,用来表示配置信息
logs.SetLogger(logs.AdapterFile,`{"filename":"project.log","level":7,"maxlines":0,"maxsize":0,"daily":true,"maxdays":10}`)
2.输出文件名和行号
日志默认不输出调用的文件名和文件行号,如果你期望输出调用的文件名和文件行号,可以如下设置
// EnableFuncCallDepth enable log funcCallDepth
logs.EnableFuncCallDepth(true)
func EnableFuncCallDepth(b bool) {beeLogger.enableFuncCallDepth = b
}
开启传入参数 true,关闭传入参数 false,默认是关闭的.
如果你的应用自己封装了调用 log 包,那么需要设置 SetLogFuncCallDepth,默认是 2,也就是直接调用的层级,如果你封装了多层,那么需要根据自己的需求进行调整.
logs.SetLogFuncCallDepth(3)
// SetLogFuncCall set the CallDepth, default is 4
func SetLogFuncCall(b bool) {beeLogger.EnableFuncCallDepth(b)beeLogger.SetLogFuncCallDepth(4)
}
3. 异步输出日志
为了提升性能, 可以设置异步输出:
logs.Async()
// Async set the beelogger with Async mode and hold msglen messages
func Async(msgLen ...int64) *BeeLogger {return beeLogger.Async(msgLen...)
}
异步输出允许设置缓冲 chan 的大小
logs.Async(1e3)
4. 引擎配置
console
可以设置输出的级别,或者不设置保持默认,默认输出到 os.Stdout:
// SetLogger provides a given logger adapter into BeeLogger with config string.
// config need to be correct JSON as string: {"interval":360}.
//level 输出的日志级别
//color 是否开启打印日志彩色打印(需环境支持彩色输出)
logs.SetLogger(logs.AdapterConsole, `{"level":1,"color":true}`)
file
设置的例子如下所示:
//file
//filename 保存的文件名
//maxlines 每个文件保存的最大行数,默认值 1000000
//maxsize 每个文件保存的最大尺寸,默认值是 1 << 28, //256 MB
// daily 是否按照每天 logrotate,默认是 true
//maxdays 文件最多保存多少天,默认保存 7 天
//rotate 是否开启 logrotate,默认是 true
//level 日志保存的时候的级别,默认是 Trace 级别
//perm 日志文件权限
logs.SetLogger(logs.AdapterFile, `{"filename":"test.log" }`)
multifile
设置的例子如下所示:
//multifile//filename 保存的文件名//maxlines 每个文件保存的最大行数,默认值 1000000//maxsize 每个文件保存的最大尺寸,默认值是 1 << 28, //256 MB// daily 是否按照每天 logrotate,默认是 true//maxdays 文件最多保存多少天,默认保存 7 天//rotate 是否开启 logrotate,默认是 true//level 日志保存的时候的级别,默认是 Trace 级别//perm 日志文件权限//separate 需要单独写入文件的日志级别,设置后命名类似 test.error.loglogs.SetLogger(logs.AdapterMultiFile, `{"filename":"test.log","separate":["emergency", "alert", "critical", "error", "warning", "notice", "info", "debug"]}`)
conn
网络输出,设置的例子如下所示:
//conn(网络输出)//reconnectOnMsg 是否每次链接都重新打开链接,默认是 false//reconnect 是否自动重新链接地址,默认是 false//net 发开网络链接的方式,可以使用 tcp、unix、udp 等//addr 网络链接的地址//level 日志保存的时候的级别,默认是 Trace 级别logs.SetLogger(logs.AdapterConn, `{"net":"tcp","addr":":7020"}`)
smtp
邮件发送,设置的例子如下所示:
//smtp(邮件发送)//username smtp 验证的用户名//password smtp 验证密码//host 发送的邮箱地址//sendTos 邮件需要发送的人,支持多个//subject 发送邮件的标题,默认是 Diagnostic message from server//level 日志发送的级别,默认是 Trace 级别logs.SetLogger(logs.AdapterMail, `{"username":"beegotest@gmail.com","password":"xxxxxxxx","host":"smtp.gmail.com:587","sendTos":["xiemengjun@gmail.com"]}`)
ElasticSearch
输出到 ElasticSearch:
logs.SetLogger(logs.AdapterEs, `{"dsn":"http://localhost:9200/","level":1}`
参考文章:
https://beego.me/docs/mvc/controller/logs.md
https://beego.me/docs/module/logs.md
beego/logs模块的使用相关推荐
- beego框架-logs模块学习笔记
前一段时间的项目中用到了beego框架下的logs模块,记录一下使用过程.logs模块官方文档 一.示例 1.控制台输出 //控制台输出 func Console() {log := logs.New ...
- Beego框架logs模块
目录 logs模块下载 logs使用 输出不显示文件名行号 异步输出日志 自定义日志 logs模块下载 开始我被手册上误导了,试了半天不行,还没发现go get和导包的网址不一样,我试了下导包的就可以 ...
- golang beego 配置
beego 目前支持 INI.XML.JSON.YAML 格式的配置文件解析,但是默认采用了 INI 格式解析,用户可以通过简单的配置就可以获得很大的灵活性. 默认配置解析 通过这个文件你可以初始化很 ...
- frp源码剖析-frp中的log模块
前言&引入 一个好的log模块可以帮助我们排错,分析,统计 一般来说log中需要有时间.栈信息(比如说文件名行号等),这些东西一般某些底层log模块已经帮我们做好了.但在业务中还有很多我们需要 ...
- golang学习笔记8 beego参数配置 打包linux命令
golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架 https://beego.me/docs/mvc/contr ...
- GolangWeb架构Beego
Beego beego简介 beego是一款快速开发Go应用的HTTp框架,它可以用来快速开发API,Web及后端服务的各种应用,是一个Restful风格的框架,主要的设计灵感来源于tormado,s ...
- DPDK — RTE_LOG 日志模块
目录 文章目录 目录 DPDK 的日志系统 RTE_LOG 宏 rte_log 和 rte_vlog 函数 日志模块初始化 第一阶段初始化 第二阶段初始化 注册新的日志类型 复用现有日志类型 参考文档 ...
- python模块使用_PYthon模块使用教程(最新).doc
您所在位置:网站首页 > 海量文档  > 计算机 > Python PYthon模块使用教程(最新).doc63页 本 ...
- linux go missing git command,安装beego出现go: missing Git command
安装beego报下面的错误: go build -ldflags "-linkmode external -extldflags -static" -o go-admin main ...
最新文章
- mysql 应用前景_图数据库在企业应用中前景如何,相比关系型数据库有哪些优势?...
- 多态时:成员特点,成员变量
- CentOS7.2 安装Docker
- VC2019无法打开文件msvcrtd.lib和Spectre 缓解库相关问题
- JavaScript 创建类/对象的几种方式
- Educational Codeforces Round 41(已补D,E)
- oracle资产负债表重分类吗,【好会计】讲讲资产负债表中的重分类!
- Mac废纸篓批量还原的方法
- 摄影爱好者的照片,怎样才能变收入?
- 20155235 信息安全技术概论 第二次实验报告
- structs 1.x 学习
- iredmail创建邮件群组
- 智能家居新体验:什么样的数据让语音交互更智慧
- C++编程第一步:判断一个数字是不是整数
- DVE C++ 中批量注释快捷键 Ctrl + /
- 孩子花掉父母两年工资,游戏你到底是“天使”还是“恶魔”?
- NodeJs - for循环的几种遍历方式
- JavaScript内存相关初了解:堆栈、引擎、闭包隐患
- Exercise11-Matplotlib
- LCHub:vika维格表将 70 万行代码开源了