golang语言log4go日志包使用详解

在go项目的当前文件夹里生成一个logs文件夹,生成test.log的日志文件存放于该路径下。程序中按照下面代码初始化即可在程序中使用log4go添加日志。

package main
import (
	"os"
	"strings"
	"github.com/alecthomas/log4go"
	)

func initConfigs() {
	log4goInit()
	log4go.LoadConfiguration("log4go.xml")
	log4go.Info("log4go init ok.")
}

func log4goInit() {
	path, _ := os.Getwd()
	path = strings.Replace(path, "\\", "/", -1) + "/logs"
	if !pathExists(path) {
		log4go.Warn("dir: logs/ not found.")
		err := os.MkdirAll(path, 0711)
		if err != nil {
			log4go.Error(err.Error())
		}
	}
}

func pathExists(path string) bool {
	_, err := os.Stat(path)
	if err == nil {
		return true
	}
	if os.IsNotExist(err) {
		return false
	}
	return false
}

加载配置文件,在该项目中新建一个log4go.xml文件,内容如下

  
    
    stdout  
    console  
      
    DEBUG  
    
    
    file  
    file  
    FINEST  
    logs/test.log  
      
    [%D %T] [%L] (%S) %M  
    false   
    0M   
    0K   
    true   
    
    
    xmllog  
    xml  
    TRACE  
    trace.xml  
    true   
    100M   
    6K   
    false   
    
    
    donotopen  
    socket  
    FINEST  
    192.168.0.73:12124   
    udp   
    
 

接下来对配置文件进行介绍:

  
    stdout  
    console  
      
    DEBUG  
   

这里是设置控制台输出日志级别为DEBUG级以上(过滤器表示日志级别,在该级别以下),也就是控制台会输出TRACE、INFO、WARNING、ERROR等几类日志,可以进行更改配置。

   
    file  
    file  
    INFO  
    logs/test.log  
      
    [%D %T] [%L] (%S) %M  
    false   
    0M   
    0K   
    true   
    

配置日志文件写入logs/test.log,同时配置过滤器日志级别为INFO,类型为file,也即是WARNING、ERROR等几类日志会写入test.log文件中。
对于不需要的过滤器可以设置为为filter enabled=“false”

   
    xmllog  
    xml  
    TRACE  
    trace.xml  
    true   
    100M   
    6K   
    false   
    
    
    donotopen  
    socket  
    FINEST  
    192.168.0.73:12124   
    udp   
    
 

如有不对欢迎指正,相互学习,共同进步。

你可能感兴趣的:(Golang,Golang进阶之路)