log4j XML配置示例
时间:2020-02-23 14:41:33 来源:igfitidea点击:
日志记录是编程的重要组成部分。
它有助于开发人员跟踪代码工作流程并有效修复错误。
如果我们在代码中获得任何问题,我们会检查该工作流程或者函数的日志。
log4j是快速,可靠的日志记录框架,可以轻松地与代码集成。
可以在不使用的情况下在运行时启用日志记录
有两种方式,我们可以使用log4j进行日志记录。
- log4j.properties.
- log4j.xml.
在本教程中,我们将看到如何使用log4.xml配置
1)创建简单的Maven Java项目。
2)在pom.xml中放入log4j条目。
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
3)更新Maven项目下载要求JAR
右键单击"项目" - > Maven - >更新项目
4)创建log4j.xml文件
此文件是log4j配置的主文件。
它有有关日志级别的信息,日志Appender。
登录控制台:
如果要登录到控制台,则需要在log4j.xml中使用以下行。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
</layout>
</appender>
<root>
<level value="DEBUG"
<appender-ref ref="console"
</root>
</log4j:configuration>
日志文件:
如果要记录到控制台,则需要在log4j.xml中使用以下行,我们也需要提供日志文件名。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false"
<param name="maxFileSize" value="10MB"
<param name="maxBackupIndex" value="5"
<!-- For Tomcat -->
<param name="file" value="appLogs.log"
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
</layout>
</appender>
<root>
<level value="DEBUG"
<appender-ref ref="file"
</root>
</log4j:configuration>
日志到控制台和文件均:
如果要登录到控制台和文件,可以使用以下代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
</layout>
</appender>
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false"
<param name="maxFileSize" value="10MB"
<param name="maxBackupIndex" value="10"
<param name="file" value="appLogs.log"
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"
</layout>
</appender>
<root>
<level value="DEBUG"
<appender-ref ref="console"
<appender-ref ref="file"
</root>
</log4j:configuration>
5)记录器的示例类
在Package org.igi.theitroad中的SRC/Main/Java中创建一个名为"loggingmain.java"的类
package org.igi.theitroad;
import org.apache.log4j.xml.DOMConfigurator;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
public class LoggingMain {
private static final Logger logger = LogManager.getLogger(LoggingMain.class);
public static void main(String[] args) {
DOMConfigurator.configure("log4j.xml");
logger.info("Hello world");
logger.info("we are in logger info mode");
}
}
6)运行程序:
运行上面的程序时,我们将在下面的输出到控制台和文件(applogs.log)
0 [main] INFO org.igi.theitroad.LoggingMain - Hellow world 1 [main] INFO org.igi.theitroad.LoggingMain - we are in logger info mode

