# `log4j.xml`示例 – Log4j xml 配置示例

> 原文： [https://howtodoinjava.com/log4j/how-to-configure-log4j-using-xml-configuration/](https://howtodoinjava.com/log4j/how-to-configure-log4j-using-xml-configuration/)

[Log4j](https://logging.apache.org/log4j/ "log4j tutorials") 是一个简单而灵活的日志记录框架。 应用日志为开发人员提供了有关应用故障的详细上下文。 使用 log4j，可以在运行时启用日志记录，而无需修改应用二进制文件。 log4j 包的设计目的是使这些语句可以保留在出厂代码中，而不会造成高昂的性能成本。

实际上，两个最常见的配置选项是使用`log4j.xml`配置或使用`log4j.properties`配置。

在此 **log4j xml 配置教程**中，我展示了`log4j.xml`配置的示例代码。

> 阅读更多： [Log4j 属性文件示例](//howtodoinjava.com/log4j/how-to-configure-log4j-using-properties-file/)

## 1\. Log4j Maven 依赖项

[创建一个 Maven Java 项目](https://howtodoinjava.com/maven/create-java-project-maven/)并更新 log4j 依赖项。

```java
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

```

## 2\. `log4j.xml`文件

这是主要配置文件，其中包含 log4j 使用的所有运行时配置。 该文件将具有 log4j 附加器信息，日志级别信息和文件附加器的输出文件名。

创建此文件并放入应用类路径。

```java
<!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">
    <param name="Target" value="System.out"/>
    <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="fileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="demoApplication.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>
    <priority value ="debug"></priority>
    <appender-ref ref="console"></appender>
    <appender-ref ref="fileAppender"></appender>
  </root>

</log4j:configuration>

```

## 3\. `log4j.xml`示例

```java
package com.howtodoinjava;

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;

public class Log4jXmlConfigurationExample
{
	static Logger logger = Logger.getLogger(Log4jXmlConfigurationExample.class);

	public static void main(String[] args)
	{
		//DOMConfigurator is used to configure logger from xml configuration file
		DOMConfigurator.configure("log4j.xml");

		//Log in console in and log file
		logger.debug("Log4j appender configuration is successful !!");
	}
}

```

在控制台中输出，在项目根文件夹中输出`demoApplication.log`：

```java
[main] DEBUG com.howtodoinjava.Log4jXmlConfigurationExample - Log4j xml configuration is successful !!

```

现在，让我们看一些`log4j.xml`示例，这些示例将日志消息输出到特定位置。

## 4\. Log4j 控制台附加器 – 记录到控制台

使用`ConsoleAppender`将日志输出到控制台的 Java 程序。

```java
<!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">
    <param name="Target" value="System.out"/>
    <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>
    <priority value ="debug"></priority>
    <appender-ref ref="console"></appender>
  </root>

</log4j:configuration>

```

## 4\. Log4j 滚动文件附加器 – 记录到文件

使用`RollingFileAppender`将日志输出到文件的 Java 程序。

```java
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'>

  <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="demoApplication.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>
    <priority value ="debug"></priority>
    <appender-ref ref="fileAppender"></appender>
  </root>

</log4j:configuration>

```

让我知道关于`log4j.xml`配置和用法的任何问题。

学习愉快！