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 ...
最新文章
- HashMap之tableSizeFor
- windows 系统 oracle监听无法启动。
- 最快的存储过程分页 50W
- 我的软件测试之旅:(10)贡献——开发项流程
- Ubuntu 16.04下Linux驱动编写第一步
- 数字孪生 - 认知篇
- 计算机网络中什么是令牌,一个动画看懂网络原理之令牌环网的工作原理
- [项目管理]-第十章:配置管理
- pdf 加深 扫描件_怎样把扫描的字体加深 pdf扫描件字体加深
- UEFI模式下安装ubuntu以及重装ubuntu教程
- 使用多个路由器有线桥接实现无线漫游
- 盘点一份JS逆向代码转换为Python代码的教程
- 黑客游戏Hacknet下载(游戏分享一)
- @ApiOperation
- linux网卡命名规则及修改ip地址
- 联想服务器如何修改硬盘模式,联想thinkpad如何修改硬盘模式为ahci
- notepad++ 对比文档
- 【techQA】如何在Mac OS 11 Big Sur or M1芯片Mac下开启蓝牙Apt-X
- excel的合并和分开and转为在线文档
- 一级建造师资格考试报名条件(2012-05-16)
热门文章
- 虚拟机Ubuntu18.04中文输入法设置(同时保留系统英文语言)
- 大数据统计分析毕业设计_大数据时代的成绩管理与数据分析 毕业设计论文
- mysql 大写 小写_MySQL大写和小写问题
- 【VulnHub靶场】——CFS三层靶机内网渗透实操
- centos 7 iso u盘安装_服务器系统CentOS安装教程
- 不用插件,如何将tif格式的影像精准导入到CAD中?
- 【0034】 PostgreSQL报错信息:The server must be started by the user that owns the data directory.
- 腾讯 Code Review 规范出炉,你还敢乱写代码?
- 计算机数学的外文翻译,计算机 数学 外文翻译 外文文献 英文文献 模糊随机森林.doc...
- Linux 上最好的 9 个免费视频编辑软件(2018) | Linux 中国