beego框架之日志模块

  参考beego开发文档:http://beego.me/docs/module/logs.md

  beego框架之日志模块默认支持4种记录方式:
  1. 终端输出(console) :这种方式一般用在开发环境下面,方便调试。
  2. 本地文件(file)       :这种方式一般用来保存常规日志,为生产环境中常用的方式。
  3. 网络方式(network):这种方式可以用来将日志发送到指定服务器,一般可以用来根据日志触发事件等。
  4. 发送邮件(email)   :这种方式一般是将生产环境下比较重要的日志发送给相应的管理人员,以便及时发现和解决问题。

  beego框架之日志模块等级定义在github.com/astaxie/beego/logs/log.go:(级别以此递减)
  const (
    LevelEmergency = iota // 紧急级别
    LevelAlert                   // 报警级别
    LevelCritical                // 严重错误级别
    LevelError                   // 错误级别
    LevelWarning              // 警告级别
    LevelNotice                 // 注意级别
    LevelInformational       // 报告级别
    LevelDebug                 // 除错级别
  )

1. 终端输出(console)记录方式示例:

 1 package main
 2
 3 import (
 4     "github.com/astaxie/beego/logs"
 5 )
 6
 7 func main() {
 8     log := logs.NewLogger(10000)  // 创建一个日志记录器,参数为缓冲区的大小
 9     log.SetLogger("console", "")  // 设置日志记录方式:控制台记录
10     log.SetLevel(logs.LevelDebug) // 设置日志写入缓冲区的等级:Debug级别(最低级别,所以所有log都会输入到缓冲区)
11     log.EnableFuncCallDepth(true) // 输出log时能显示输出文件名和行号(非必须)
12
13     log.Emergency("Emergency")
14     log.Alert("Alert")
15     log.Critical("Critical")
16     log.Error("Error")
17     log.Warning("Warning")
18     log.Notice("Notice")
19     log.Informational("Informational")
20     log.Debug("Debug")
21
22     log.Close()
23 }
24
25 程序输出:
26     2015/06/29 12:01:07 [main.go:13] [M] Emergency
27     2015/06/29 12:01:07 [main.go:14] [A] Alert
28     2015/06/29 12:01:07 [main.go:15] [C] Critical
29     2015/06/29 12:01:07 [main.go:16] [E] Error
30     2015/06/29 12:01:07 [main.go:17] [W] Warning
31     2015/06/29 12:01:07 [main.go:18] [N] Notice
32     2015/06/29 12:01:07 [main.go:19] [I] Informational
33     2015/06/29 12:01:07 [main.go:20] [D] Debug
34
35 备注:如果log.SetLevel(logs.LevelDebug)修改为log.SetLevel(logs.LevelEmergency),则只输出Emergency级别的log,其他级别的log不会输出。

2. 本地文件(file)记录方式示例:

package main

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

func main() {
    log := logs.NewLogger(10000) // 创建一个日志记录器,参数为缓冲区的大小
    // 设置配置文件
    jsonConfig := `{
        "filename" : "test.log", // 文件名
        "maxlines" : 1000,       // 最大行
        "maxsize"  : 10240       // 最大Size
    }`
    log.SetLogger("file", jsonConfig) // 设置日志记录方式:本地文件记录
    log.SetLevel(logs.LevelDebug)     // 设置日志写入缓冲区的等级
    log.EnableFuncCallDepth(true)     // 输出log时能显示输出文件名和行号(非必须)

    log.Emergency("Emergency")
    log.Alert("Alert")
    log.Critical("Critical")
    log.Error("Error")
    log.Warning("Warning")
    log.Notice("Notice")
    log.Informational("Informational")
    log.Debug("Debug")

    log.Flush() // 将日志从缓冲区读出,写入到文件
    log.Close()
}

输出结果:test.log
2015/06/29 12:55:29 [main.go:19] [M] Emergency
2015/06/29 12:55:29 [main.go:20] [A] Alert
2015/06/29 12:55:29 [main.go:21] [C] Critical
2015/06/29 12:55:29 [main.go:22] [E] Error
2015/06/29 12:55:29 [main.go:23] [W] Warning
2015/06/29 12:55:29 [main.go:24] [N] Notice
2015/06/29 12:55:29 [main.go:25] [I] Informational
2015/06/29 12:55:29 [main.go:26] [D] Debug
时间: 2024-10-03 07:14:09

beego框架之日志模块的相关文章

beego框架之orm模块

参考beego原文:http://beego.me/docs/mvc/model/orm.md#main.go beego ORM 是一个强大的 Go 语言 ORM 框架,orm模块主要是处理MVC中的M(models). 首先以bee工具创建一工程名为:beegoorm,修改的文件为 beegoorm/main.go 和 beegoorm/models/models.go(仅2个文件) beegoorm/models/models.go package models import ( "git

beego框架之orm模块——sqlite

今天基于beego ORM演示sqlite3数据库时,遇到了一小问题. 问题现象1:下载go-sqlite3(go get github.com/mattn/go-sqlite3)驱动时报错说 gcc 不在 PATH 目录里. 问题现象2:运行导入了go-sqlite3驱动的文件时编译报错说 gcc 不在 PATH 目录里. 问题发生的原因:sqlitle3是个cgo库,需要gcd编译c代码. 问题的解决办法:安装tdm-gcc或Mingw.(备注:本人安装的是tdm-gcc,下载地址:http

beego框架之orm模块——PostgreSQL

beego框架默认支持三种数据库类型(MySQL,Sqlite,PostgreSQL).这三种数据库的配置虽然大同小异,但也有各自的差别.如今该总结下了. 以下是基于beego框架对PostgreSQL数据库进行操作. models/models.go 1 package models 2 3 import ( 4 "github.com/astaxie/beego/orm" 5 ) 6 7 type Student struct { 8 Id int64 9 Name string

go系列(6)- beego日志模块的使用

1.安装日志模块 切换到工作目录,下载日志模块 cd /data/work/go/ go get github.com/astaxie/beego/logs 2.导入日志模块 使用的时候,需要导入模块 import ( "github.com/astaxie/beego/logs" ) 3.设置参数 输出文件名和行号,日志默认不输出调用的文件名和文件行号,如果你期望输出调用的文件名和文件行号,可以如下设置 logs.EnableFuncCallDepth(true) 开启传入参数 tr

Go beego框架使用笔记(一)

Beego介绍 beego我认为是go初学者比较容易上手的一门MVC Web框架.简单易懂,最重要的一点就是提供了中文文档,这对于我这种英语能力比较差的人来说就是福音. beego的官网上是这么介绍beego的:"beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado.sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface.st

搭建一套自己实用的.net架构(2)【日志模块-log4net】

先谈谈简单的模块,日志.在系统中日志模块是必须的,什么系统日志,操作日志,调试日志.这里用的是log4net. 对log4net还不熟悉的小伙伴们赶快去搜索基础教程哦, 我这里就不温故了. 那么有人要问了,log4net确实很强大,而且我们也会用.还要单独写一篇文章来介绍,有必要吗? 我简单的举两个场景: 1:log4net写入DB 还需要在 log4net中配置数据库连接字符串,   我想log4net 和 我的 connectionStrings 用1个配置不行吗? 2:log4net写入参

Beego 框架学习(一)

Beego官网本身已经整理的非常详细了,但是作为一个学习者,我还是决定自己好好整理一下,这样在后面使用的时候自己对每部分才能非常熟悉,即使忘记了,也可以迅速定位自己要用的知识在哪里.当然也是对官网的一个精简整理,同时结合一些例子,更好的理解和学习Beego Beego官网地址:https://beego.me 这次整理也是一个初步的整理,正好在这个之后把之前通过net/http实现的短url项目通过beego框架实现一遍 Beego的安装 go get github.com/astaxie/be

Python入门之logging日志模块以及多进程日志

本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python的logging模块提供了灵活的标准模块,使得任何Python程序都可以使用这个第三方模块来实现日志记录.python logging 官方文档 logging框架中主要由四个部分组成: Loggers: 可供程序直接调用的接口 Handlers: 决定将日志记录分配至正确的目的地 Filters:

beego框架学习(一)

beego简介 Beego是一个快速开发Go应用的http框架,可用于快速开发Api.web及后端服务等各种应用,是一个RESTful框架. beego的架构 Beego由八个独立模块构建,是一个高度解耦的应用,用户可以不是用beego的http逻辑使用里面的任意模块.具体架构设计如下:  beego执行逻辑 beego是一个经典的mvc框架,它的执行逻辑如下:  与之对应的项目目录结构如下: ├── conf │ └── app.conf ├── controllers │ ├── admin