Log4Go 笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Log4Go 笔记相关的知识,希望对你有一定的参考价值。

一、概念

在java、.net平台有非常有名的日志类,golang 也有对应的版本

安装: go get github.com/alecthomas/log4go

二、日志级别

type Level int
const (
    FINEST Level = iota
    FINE
    DEBUG
    TRACE
    INFO
    WARNING
    ERROR
    CRITICAL
)

可以看到作者定义了一个 Level 类型来定义日志级别,使用的时候注意。

三、LogWriter

1. ConsoleLogWriter :控制台输出日志

logger1 := log4go.Logger{}
logger1.AddFilter("logger1", log4go.INFO, log4go.NewConsoleLogWriter())
logger1.Log(log4go.INFO, "logger1:", "hello log4go")

2. FileLogWriter :文件输出日志

logger3 := log4go.Logger{}
logger3.AddFilter("logger3", log4go.ERROR, log4go.NewFileLogWriter("file.log", false))
logger3.Log(log4go.ERROR, "logger3:", "hello log4go")

3. FormatLogWriter : 格式化输出日志

format 解释:

Known format codes: %T - Time (15:04:05 MST) %t - Time (15:04) %D - Date (2006/01/02) %d - Date (01/02/06) %L - Level (FNST, FINE, DEBG, TRAC, WARN, EROR, CRIT) %S - Source %M - Message Ignores unknown formats

Recommended: "[%D %T] [%L] (%S) %M"

logger2 := log4go.Logger{}
std := os.Stdout
logger2.AddFilter("logger2", log4go.DEBUG, log4go.NewFormatLogWriter(std, "[%D %T] [%L] (%S) %M"))
logger2.Log(log4go.DEBUG, "logger2:", "hello log4go")

4. SocketLogWriter

额… 这个等用到再补吧

5. NewXMLLogWriter : xml格式输出日志

logger4 := log4go.Logger{}
logger4.AddFilter("logger4", log4go.ERROR, log4go.NewXMLLogWriter("file.xml", true))
logger4.Log(log4go.ERROR, "logger4:", "hello log4go")
<log created="2016/02/02 14:17:10 CST">
<record level="EROR">
    <timestamp>2016/02/02 14:17:10 CST</timestamp>
    <source>logger4:</source>
    <message>hello log4go</message>
</record>

以上是关于Log4Go 笔记的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记:python3,代码片段(2017)

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

sh bash片段 - 这些片段大多只是我自己的笔记;我找到了一些,有些我已经找到了

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

Oracle-常用数据库对象笔记(片段)

如何使用导航组件处理片段内的向上按钮