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模块的使用相关推荐

  1. beego框架-logs模块学习笔记

    前一段时间的项目中用到了beego框架下的logs模块,记录一下使用过程.logs模块官方文档 一.示例 1.控制台输出 //控制台输出 func Console() {log := logs.New ...

  2. Beego框架logs模块

    目录 logs模块下载 logs使用 输出不显示文件名行号 异步输出日志 自定义日志 logs模块下载 开始我被手册上误导了,试了半天不行,还没发现go get和导包的网址不一样,我试了下导包的就可以 ...

  3. golang beego 配置

    beego 目前支持 INI.XML.JSON.YAML 格式的配置文件解析,但是默认采用了 INI 格式解析,用户可以通过简单的配置就可以获得很大的灵活性. 默认配置解析 通过这个文件你可以初始化很 ...

  4. frp源码剖析-frp中的log模块

    前言&引入 一个好的log模块可以帮助我们排错,分析,统计 一般来说log中需要有时间.栈信息(比如说文件名行号等),这些东西一般某些底层log模块已经帮我们做好了.但在业务中还有很多我们需要 ...

  5. golang学习笔记8 beego参数配置 打包linux命令

    golang学习笔记8 beego参数配置 打包linux命令 参数配置 - beego: 简约 & 强大并存的 Go 应用框架 https://beego.me/docs/mvc/contr ...

  6. GolangWeb架构Beego

    Beego beego简介 beego是一款快速开发Go应用的HTTp框架,它可以用来快速开发API,Web及后端服务的各种应用,是一个Restful风格的框架,主要的设计灵感来源于tormado,s ...

  7. DPDK — RTE_LOG 日志模块

    目录 文章目录 目录 DPDK 的日志系统 RTE_LOG 宏 rte_log 和 rte_vlog 函数 日志模块初始化 第一阶段初始化 第二阶段初始化 注册新的日志类型 复用现有日志类型 参考文档 ...

  8. python模块使用_PYthon模块使用教程(最新).doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspPython PYthon模块使用教程(最新).doc63页 本 ...

  9. linux go missing git command,安装beego出现go: missing Git command

    安装beego报下面的错误: go build -ldflags "-linkmode external -extldflags -static" -o go-admin main ...

最新文章

  1. mysql 应用前景_图数据库在企业应用中前景如何,相比关系型数据库有哪些优势?...
  2. 多态时:成员特点,成员变量
  3. CentOS7.2 安装Docker
  4. VC2019无法打开文件msvcrtd.lib和Spectre 缓解库相关问题
  5. JavaScript 创建类/对象的几种方式
  6. Educational Codeforces Round 41(已补D,E)
  7. oracle资产负债表重分类吗,【好会计】讲讲资产负债表中的重分类!
  8. Mac废纸篓批量还原的方法
  9. 摄影爱好者的照片,怎样才能变收入?
  10. 20155235 信息安全技术概论 第二次实验报告
  11. structs 1.x 学习
  12. iredmail创建邮件群组
  13. 智能家居新体验:什么样的数据让语音交互更智慧
  14. C++编程第一步:判断一个数字是不是整数
  15. DVE C++ 中批量注释快捷键 Ctrl + /
  16. 孩子花掉父母两年工资,游戏你到底是“天使”还是“恶魔”?
  17. NodeJs - for循环的几种遍历方式
  18. JavaScript内存相关初了解:堆栈、引擎、闭包隐患
  19. Exercise11-Matplotlib
  20. LCHub:vika维格表将 70 万行代码开源了

热门文章

  1. json转换成excel在线js小工具分享【不限制大小】
  2. 基于小波变换的音频压缩
  3. 【产品】产品设计:美工线的设计
  4. 全球及中国非接触式红外数字温度计行业研究及十四五规划分析报告
  5. cad怎么将图层后置_cad怎么把整个图层置于底层
  6. 走进微软亚洲研究院随笔
  7. SDS(Spoken Dialogue System) 对话系统
  8. 哈工大计算机网络MOOC作业题解答
  9. 纯css实现正方体图片旋转效果
  10. 三星oneui主屏幕费电_三星最新力作,第三方桌面无处遁形,OneUI越来越自由