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. HashMap之tableSizeFor
  2. windows 系统 oracle监听无法启动。
  3. 最快的存储过程分页 50W
  4. 我的软件测试之旅:(10)贡献——开发项流程
  5. Ubuntu 16.04下Linux驱动编写第一步
  6. 数字孪生 - 认知篇
  7. 计算机网络中什么是令牌,一个动画看懂网络原理之令牌环网的工作原理
  8. [项目管理]-第十章:配置管理
  9. pdf 加深 扫描件_怎样把扫描的字体加深 pdf扫描件字体加深
  10. UEFI模式下安装ubuntu以及重装ubuntu教程
  11. 使用多个路由器有线桥接实现无线漫游
  12. 盘点一份JS逆向代码转换为Python代码的教程
  13. 黑客游戏Hacknet下载(游戏分享一)
  14. @ApiOperation
  15. linux网卡命名规则及修改ip地址
  16. 联想服务器如何修改硬盘模式,联想thinkpad如何修改硬盘模式为ahci
  17. notepad++ 对比文档
  18. 【techQA】如何在Mac OS 11 Big Sur or M1芯片Mac下开启蓝牙Apt-X
  19. excel的合并和分开and转为在线文档
  20. 一级建造师资格考试报名条件(2012-05-16)

热门文章

  1. 虚拟机Ubuntu18.04中文输入法设置(同时保留系统英文语言)
  2. 大数据统计分析毕业设计_大数据时代的成绩管理与数据分析 毕业设计论文
  3. mysql 大写 小写_MySQL大写和小写问题
  4. 【VulnHub靶场】——CFS三层靶机内网渗透实操
  5. centos 7 iso u盘安装_服务器系统CentOS安装教程
  6. 不用插件,如何将tif格式的影像精准导入到CAD中?
  7. 【0034】 PostgreSQL报错信息:The server must be started by the user that owns the data directory.
  8. 腾讯 Code Review 规范出炉,你还敢乱写代码?
  9. 计算机数学的外文翻译,计算机 数学 外文翻译 外文文献 英文文献 模糊随机森林.doc...
  10. Linux 上最好的 9 个免费视频编辑软件(2018) | Linux 中国