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