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