`
zhuruxin86
  • 浏览: 103141 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

beego日志

go 
阅读更多
转自:https://blog.csdn.net/huwh_/article/details/77923570

1. 使用入门
beego 的日志处理是基于 logs 模块搭建的,内置了一个变量 BeeLogger,默认已经是 logs.BeeLogger 类型,初始化了 console,也就是默认输出到 console。

beego.Emergency("this is emergency")
beego.Alert("this is alert")
beego.Critical("this is critical")
beego.Error("this is error")
beego.Warning("this is warning")
beego.Notice("this is notice")
beego.Informational("this is informational")
beego.Debug("this is debug")
1
2
3
4
5
6
7
8
2. 设置输出
我们的程序往往期望把信息输出到 log 中,现在设置输出到文件很方便,如下所示:

beego.SetLogger("file", `{"filename":"logs/test.log"}`)
1
这个默认情况就会同时输出到两个地方,一个 console,一个 file,如果只想输出到文件,就需要调用删除操作:

beego.BeeLogger.DelLogger("console")
1
3. 设置级别
LevelEmergency
LevelAlert
LevelCritical
LevelError
LevelWarning
LevelNotice
LevelInformational
LevelDebug
1
2
3
4
5
6
7
8
级别依次降低,默认全部打印,但是一般我们在部署环境,可以通过设置级别设置日志级别:

beego.SetLevel(beego.LevelInformational)
1
4. 输出文件名和行号
日志默认不输出调用的文件名和文件行号,如果你期望输出调用的文件名和文件行号,可以如下设置

beego.SetLogFuncCall(true)
1
开启传入参数 true, 关闭传入参数 false, 默认是关闭的。

5. beego/logs模块的使用
是一个用来处理日志的库,目前支持的引擎有 file、console、net、smtp,可以通过如下方式进行安装:

go get github.com/astaxie/beego/logs
1
5.1. 通用方式
首先引入包:

import ( "github.com/astaxie/beego/logs" )
1
然后添加输出引擎(log 支持同时输出到多个引擎),这里我们以 console 为例,第一个参数是引擎名(包括:console、file、conn、smtp、es、multifile)

logs.SetLogger("console")
1
添加输出引擎也支持第二个参数,用来表示配置信息,详细的配置请看下面介绍:

logs.SetLogger(logs.AdapterFile,`{"filename":"project.log","level":7,"maxlines":0,"maxsize":0,"daily":true,"maxdays":10}`)
1
示例:

package main

import (
    "github.com/astaxie/beego/logs"
)

func main() {
    //an official log.Logger
    l := logs.GetLogger()
    l.Println("this is a message of http")
    //an official log.Logger with prefix ORM
    logs.GetLogger("ORM").Println("this is a message of orm")

    logs.Debug("my book is bought in the year of ", 2016)
    logs.Info("this %s cat is %v years old", "yellow", 3)
    logs.Warn("json is a type of kv like", map[string]int{"key": 2016})
    logs.Error(1024, "is a very", "good game")
    logs.Critical("oh,crash")
}
1
2
3
4
5
6
7

5.2. 输出文件名和行号
日志默认不输出调用的文件名和文件行号,如果你期望输出调用的文件名和文件行号,可以如下设置

logs.EnableFuncCallDepth(true)
1
开启传入参数 true,关闭传入参数 false,默认是关闭的.

如果你的应用自己封装了调用 log 包,那么需要设置 SetLogFuncCallDepth,默认是 2,也就是直接调用的层级,如果你封装了多层,那么需要根据自己的需求进行调整.

logs.SetLogFuncCallDepth(3)
1
5.3. 异步输出日志
为了提升性能, 可以设置异步输出:

logs.Async()
1
异步输出允许设置缓冲 chan 的大小

logs.Async(1e3)
1
5.4. 引擎配置
console

可以设置输出的级别,或者不设置保持默认,默认输出到 os.Stdout:

logs.SetLogger(logs.AdapterConsole, `{"level":1}`)
1
file

设置的例子如下所示:

logs.SetLogger(logs.AdapterFile, `{"filename":"test.log"}`)
1
主要的参数如下说明:

filename 保存的文件名
maxlines 每个文件保存的最大行数,默认值 1000000
maxsize 每个文件保存的最大尺寸,默认值是 1 << 28, //256 MB
daily 是否按照每天 logrotate,默认是 true
maxdays 文件最多保存多少天,默认保存 7 天
rotate 是否开启 logrotate,默认是 true
level 日志保存的时候的级别,默认是 Trace 级别
perm 日志文件权限
multifile

设置的例子如下所示:

logs.SetLogger(logs.AdapterMultiFile, ``{"filename":"test.log","separate":["emergency", "alert", "critical", "error", "warning", "notice", "info", "debug"]}``)
1
主要的参数如下说明(除 separate 外,均与file相同):

filename 保存的文件名
maxlines 每个文件保存的最大行数,默认值 1000000
maxsize 每个文件保存的最大尺寸,默认值是 1 << 28, //256 MB
daily 是否按照每天 logrotate,默认是 true
maxdays 文件最多保存多少天,默认保存 7 天
rotate 是否开启 logrotate,默认是 true
level 日志保存的时候的级别,默认是 Trace 级别
perm 日志文件权限
separate 需要单独写入文件的日志级别,设置后命名类似 test.error.log
conn

网络输出,设置的例子如下所示:

logs.SetLogger(logs.AdapterConn, `{"net":"tcp","addr":":7020"}`)
1
主要的参数说明如下:

reconnectOnMsg 是否每次链接都重新打开链接,默认是 false
reconnect 是否自动重新链接地址,默认是 false
net 发开网络链接的方式,可以使用 tcp、unix、udp 等
addr 网络链接的地址
level 日志保存的时候的级别,默认是 Trace 级别
smtp

邮件发送,设置的例子如下所示:

logs.SetLogger(logs.AdapterMail, `{"username":"beegotest@gmail.com","password":"xxxxxxxx","host":"smtp.gmail.com:587","sendTos":["xiemengjun@gmail.com"]}`)
1
主要的参数说明如下:

username smtp 验证的用户名
password smtp 验证密码
host 发送的邮箱地址
sendTos 邮件需要发送的人,支持多个
subject 发送邮件的标题,默认是 Diagnostic message from server
level 日志发送的级别,默认是 Trace 级别
ElasticSearch

输出到 ElasticSearch:

logs.SetLogger(logs.AdapterEs, `{"dsn":"http://localhost:9200/","level":1}`
1
分享到:
评论

相关推荐

    beelogs:从beego日志升级!

    beelogs是beego日志的升级版本! beelogs添加了一些方法,例如Rest(),GoOn(),StealOne()... 如何安装? go get github.com/henrylee2cn/beelogs 支持哪些适配器? 到目前为止,此日志支持控制台,文件,...

    GO语言基于beego Api开发的日志队列消费者

    GO语言基于beego Api开发的日志队列消费者,需要自行搭建beego环境。项目中采用了redis的队列功能。

    快速开发Go应用的HTTP框架beego.zip

    使用日志模块来记录你的操作信息;使用 config 模块来解析你各种格式的文件。所以 beego 不仅可以用于 HTTP 类的应用开发,在你的 socket 游戏开发中也是很有用的模块,这也是 beego 为什么受欢迎的一个原因。大家...

    goLang笔记+beego框架

    模块化:beego 内置了强大的模块,包括 Session、缓存操作、日志记录、配置解析、性能监控、上下文操作、ORM 模块、请求模拟等强大的模块,足以支撑你任何的应用。 高性能:beego 采用了 Go 原生的 http 包来处理...

    beego:beego是用于Go编程语言的开源高性能Web框架。

    基本模块:包括日志模块,配置模块,调控器模块; 任务:用于运行定时任务或周期性任务; 客户端:包括ORM模块,httplib模块,缓存模块; 服务器:包括Web模块。 将来我们将支持gRPC; 快速开始 如果您无法打开...

    beego-ueditor:beego的模仿者

    beego-ueditorA smiple ueditor for beego.这是一个简单的UEditor 演示,基于 BeegoChangelog 更新日志Note:增加远程抓图 -- 2015-09-06

    beego:beego是用于Go编程语言的开源高性能Web框架

    基本模块:包括日志模块,配置模块,调控器模块; 任务:用于运行定时任务或周期性任务; 客户端:包括ORM模块,httplib模块,缓存模块; 服务器:包括Web模块。 将来我们将支持gRPC; 快速开始 如果您无法打开...

    go controllers

    使用日志模块来记录你的操作信息;使用 config 模块来解析你各种格式的文件。所以 beego 不仅可以用于 HTTP 类的应用开发,在你的 socket 游戏开发中也是很有用的模块,这也是 beego 为什么受欢迎的一个原因。大家...

    go-blog:一个基于Beego开发的,能快速创建个人博客,cms的系统http

    一个基于Beego的,能快速创建个人博客,cms的系统 包含功能 由于服务器资源限制,demo网站暂时无法访问 演示站点 演示站点 更新日志 时间 功能 2020年1月23日 新增文章顶置功能 2020年2月2日 新增自定义导航功能 ...

    DocHub 类百度文库 v2.4

    软件包含了以下功能:文档在线阅读office文档在线阅读PDF文档在线阅读mobi、epub、chm文档在线阅读全文搜索文档采集功能【TODO】积分功能阅读文档水印功能本次发布 v2.4 更新日志:修复 group by title 查询文档列表...

    go-sakuraSnow.7z

    自用go web框架封装,基于iris和gorm框架,数据库可自行更换,doc文件夹中有大致说明,项目默认配置文件在web/app.conf可根据自己需求自行更改,配置文件的读取基于beego框架提供的方案,项目中只实现了ini配置文件...

    wmq-admin:wmq管理员

    wmq 和 wmq-adminWmq-Admin根据 WMQ 服务提供的后台管理系统实现了对 WMQ 服务的用户,节点,消息,消费,日志的统一操作管理WMQ基于 RabbitMQ 开发的消息队列服务,支持 http 协议fork:环境依赖go1.8beego1.8...

    hauth:另外一个集成权限管理,菜单项资源管理,域管理,角色管理,用户管理,组织架构管理,操作日志管理等等的快速开发平台。 hauth是一个基础产品,在这个基础产品上,根据业务需求,快速的开发应用服务。账号:admin,密码:123456

    golang版本建议: go sdk &gt;= 1.8Java版本地址获取项目源代码方法。请确保设置了GOPATH环境变量go get github ....这个平台内部集成了菜单管理,用户管理,角色管理,授权管理,日志管理,机构管理,路由管

    Go-基于golang的快速开发平台

    以beego为基础,开发出了一款快速开发平台。这个平台内部集成了菜单管理、用户管理、角色管理、授权管理、日志管理、机构管理、路由管理、域定义管理等等。在这个平台的基础上,可以快速的开发自己的应用,以响应...

    beegoapi扩展框架beegoapix.zip

    beegoapix 是 beego api 扩展框架。 安装 go get github.com/luffyke/beegoapix 功能 接受所有客户端 http 请求,反射和调用子控制器处理请求(v0.1) 日志请求和响应 (v0.1) 错误处理 (v0.1) ...

    DocHub 类百度文库

    软件包含了以下功能:文档在线阅读office文档在线阅读PDF文档在线阅读mobi、epub、chm文档在线阅读全文搜索文档采集功能【TODO】积分功能阅读文档水印功能本次发布 v2.4 更新日志:修复 group by title 查询文档列表...

    腾讯云容器微服务API设计实践

    本文会在腾讯云容器服务上面构造微服务基础小项目,通过搭建ELK集群,实现利用Logstash采集Nginx日志,收纳及利用kibana展示的功能,同时利用Beego开发RestAPI,定义ELKService服务,实现ELKServiceGET/POST/DELETE/...

    BookStack在线文档管理系统 v2.10

    BookStack是一个基于MinDoc,使用Beego开发的在线文档管理系统,功能类似...升级日志管理后台,恢复和优化附件管理功能,以便管理音频和视频 内容编辑器支持上传音频和视频(如果开启了阿里云OSS云存储,则将音视

Global site tag (gtag.js) - Google Analytics