GO语言里的Log4j

GO语言里的Log4j

前言

Log4j是JAVA语言里提供日志处理的一个常见的包, 通过Log4j的API的调用,开发者可以很方便的在程序里实现日志的打印和记录的功能;同样的在GO语言的项目里,有时也需要一些处理日志输出和记录的功能要求;在GO语言里也内置了log包实现了简单的日志服务;来处理简单的日志处理,GO语言里也有logrus,zap这样功能较全面一些的日志处理库, 来处理复杂场景下的日志业务, log功能过于简单,logrus,zap使用起来又过于复杂;今天这个文章咱们介绍一个GO语言里用来处理日志的一个工具包log4go;这个工具即log包一样使用起来简单易用,又能进行一些较复杂业务的场景需求。

Log4GO的项目包地址

github.com/gohutool/log4go

在项目中通过

import (

"github.com/gohutool/log4go"

)

就可以将log4go这个工具包引入到自己的项目里。

Log4GO日志格式及输出的配置

笔者多年的Java开发情节,特别喜欢log4go也提供了类似于log4j一样的日志配置方式



  
    console
    [%D %T] [%L] (%S) %M
    
  

  
    info
    
    
  

配置项目简单而清晰;非常容易理解,非常容易修改调整为自己的项目所用。在配置文件里,可以指定日志的输出级别,日志记录的方式,日志输出的格式,日志追踪的范围等等。 修改不同的配置项,实现不同的输出效果。

Log4GO的使用

完整的log4go的接口文档;可以访问以下网址

http://log4go.googlecode.com

Log4GO的日志输出方式,采用的是异步日志输出的方式,日志的输出不影响主要业务程序的调用性能;

使用Log4go的代码

import (
	"github.com/gohutool/log4go"
	"testing"
	"time"
)

var logger = log4go.LoggerManager.GetLogger("com.hello")

func TestLoggerExample(t *testing.T) {
	log4go.LoggerManager.InitWithXML("./example.xml")
	logger.Info("hello")
	logger.Info("hello")
	time.Sleep(1 * time.Second)
	logger.Error("hello")

	time.Sleep(3 * time.Second)
}

输出的效果

[2022/04/06 15:17:59 CST 299] [INFO][com.hello] (github.com/gohutool/log4go/examples.TestLoggerExample:73) hello

[2022/04/06 15:17:59 CST 299] [INFO][com.hello] (github.com/gohutool/log4go/examples.TestLoggerExample:72) hello

[2022/04/06 15:18:00 CST 299] [EROR][com.hello] (github.com/gohutool/log4go/examples.TestLoggerExample:75) hello

Log4GO多种输出方式

Log4GO除了支持标准控制台输出的方式,还内置了文件输出方式, XML输出方式,TCP/IP协议输出方式,和UDP协议输出方式;同时还非侵入式的扩展方式,来扩展新的输出方式

文件输出

GO语言里的Log4j_第1张图片

UDP日志支持

GO语言里的Log4j_第2张图片

配置方式


  socket
  [%D %T %m] [%L][%l] (%S) %M
  192.168.56.1:12124 
  udp 

TCP日志支持

GO语言里的Log4j_第3张图片

配置方式


  socket
  [%D %T %m] [%L][%l] (%S) %M
  192.168.56.1:12124 
  tcp 
  -1 
  30 
  false 

更多信息可从GITHUB中获取

http://github.com/gohutool/log4go

GO语言里的Log4j_第4张图片

你可能感兴趣的:(GO编程,java,springboot,log4j,java,apache)