📅  最后修改于: 2023-12-03 15:32:45.150000             🧑  作者: Mango
Log4j是Java编程语言的一个日志记录工具,可用于记录各种类型的日志信息,如Trace、Debug、Info、Warn、Error等。Log4j可以灵活地配置,支持多种输出方式,包括控制台输出、文件输出、网络输出以及邮件输出。
log4j通过读取一个名为log4j.properties或log4j.xml的配置文件来实现配置。这个配置文件中包含了日志输出的相关配置信息,如输出级别、输出方式等。
log4j.rootLogger=INFO, console, file
# 输出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# 输出到文件
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/data/logs/myapp.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
上面的配置文件中,log4j.rootLogger
指定了整个系统的日志输出级别,若为DEBUG,则输出所有级别的日志信息。log4j.appender.console
和log4j.appender.file
分别指定了输出到控制台和输出到文件的相关配置信息。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n"/>
</layout>
</appender>
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/data/logs/myapp.log"/>
<param name="MaxFileSize" value="5MB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n"/>
</layout>
</appender>
<root>
<priority value="INFO"/>
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</log4j:configuration>
上面的配置文件中与上面的log4j.properties配置文件相同,只是使用了XML格式。
log4j的四个级别从上到下依次为TRACE、DEBUG、INFO、WARN、ERROR和FATAL。
使用log4j记录日志时,需要先初始化log4j,可以在程序的入口处进行初始化。
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class MyApp {
static Logger logger = Logger.getLogger(MyApp.class);
public static void main(String[] args) {
// 初始化log4j
PropertyConfigurator.configure("log4j.properties");
// log4j输出日志信息
logger.trace("trace信息");
logger.debug("debug信息");
logger.info("info信息");
logger.warn("warn信息");
logger.error("error信息");
logger.fatal("fatal信息");
}
}
log4j是一个强大的日志处理工具,灵活的配置方式使得开发者能够根据需要进行配置以便更好的进行日志处理。同时,通过合适配置,log4j能够为开发人员提供非常有效的日志框架机制,便于分析和排查应用问题。