最近项目中使用到 Log 日志文件打印的方式,主要是使用的 fileLogger 来封装的库,fileLogger是一个基于 Go 开发的可自动分割文件进行备份的异步日志库,具有以下特点:

  • 日志文件可按文件大小进行备份,可定制文件大小和数量
  • 日志文件可按日期进行备份
  • 两种使用模式:
    • 不同类型log分别写入不同的文件,使用Print(),Printf(),Println()三个方法
    • 不同类型log写入一个文件,但不同LEVEL的日志具有不同的颜色,使用T(),I(),W(),E()等方法,默认日志LEVEL为TRACE

        1、安装

  $ go get github.com/aiwuTech/fileLogger

        2、更新(相当于升级库)

        更新FileLogger使用"go get -u"命令

  $ go get -u github.com/aiwuTech/fileLogger

        3、log 库封装

package log

import (
	"github.com/aiwuTech/fileLogger"
	"fmt"
)

/*
公共滚动日志库
使用方法:
//0、import log库
//1、必须初始
err := InitLog(logFilePath, logFileName, logLevel, fileCount, fileSize)
if err != nil {
	os.Exit(-1)
}
//2、使用
LogFile.Println(...)
LogFile.Printf(...)
LogFile.Print(...)
LogFile.Trace(...)
LogFile.T(...) //Trace()
LogFile.Info(...)
LogFIle.I(...) //Info()
LogFile.Warn(...)
LogFile.W(...) //Warn()
LogFile.Error(...)
LogFile.E(...) //Error()
*/

var (
	LogFile *fileLogger.FileLogger
)

/*
 * 日志库初始化全局的LogFile指针
 * logFilePath 日志文件路径
 * logFileName 日志文件名称
 * logLevel 日志等级(0:Trace、1:INFO、2:WARN、3:ERROR、4:OFF)
 * fileCount 日志文件的数量
 * fileSize 文件的大小(MB)
 * return error nil:成功 other:参数错误
 */
func InitLog(logFilePath, logFileName string, logLevel uint, fileCount int, fileSize int64) error {

	if logFilePath == "" {
		return fmt.Errorf("log file path is null")
	}

	if logFileName == "" {
		return fmt.Errorf("log file name is null")
	}

	if logLevel < 0 || logLevel > 4 {
		return fmt.Errorf("log level error")
	}

	if fileCount <= 0{
		return fmt.Errorf("log file count error")
	}

	if fileSize <= 0{
		return fmt.Errorf("log file size error")
	}

	if LogFile == nil {
		LogFile = fileLogger.NewSizeLogger(logFilePath, logFileName, "", fileCount,
			fileSize, fileLogger.MB, fileLogger.DEFAULT_LOG_SCAN, fileLogger.DEFAULT_LOG_SEQ)
		LogFile.SetLogLevel( (fileLogger.LEVEL)(logLevel))
	}

	return nil
}

        4、初始化&打印日志

package main

import (
	. "github.com/company/common/log"
)

func main() {
	//初始化日志
	log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
	logConf := g.Config().Log
	err := InitLog("./var/", "app.log", 1, 30, 100)
	if err != nil {
		log.Fatalln(err)
	}
    //打印日志
    var name = "mic"
    LogFile.Println("Hello World:", mic)
}

        到此 Go语言Log日志文件打印(fileLogger)介绍完成。