MapReduce Java log4j.xml配置
时间: 2023-09-21 16:08:21 浏览: 187
hadoop 2.9.0 mapred-default.xml 属性集
当在 MapReduce 中使用 log4j 记录日志时,你需要在项目中添加 log4j 依赖项,并创建一个 log4j.properties 或 log4j.xml 文件来配置日志记录。以下是一个示例 log4j.xml 配置文件:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="consoleAppender" 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} [%p] %m%n"/>
</layout>
</appender>
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/path/to/your/log/file.log" />
<param name="MaxFileSize" value="10MB" />
<param name="MaxBackupIndex" value="5" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n"/>
</layout>
</appender>
<logger name="org.apache.hadoop.mapreduce">
<level value="INFO"/>
<appender-ref ref="consoleAppender"/>
<appender-ref ref="fileAppender"/>
</logger>
<root>
<priority value="INFO"/>
<appender-ref ref="consoleAppender"/>
<appender-ref ref="fileAppender"/>
</root>
</log4j:configuration>
```
在这个示例配置中,我们定义了两个 Appender:consoleAppender 和 fileAppender,分别将日志输出到控制台和文件。我们还定义了一个 logger,它将记录来自 org.apache.hadoop.mapreduce 包的 INFO 级别日志,并将其发送到 consoleAppender 和 fileAppender。最后,我们定义了 root logger,它将记录所有未指定 logger 的日志,并将其发送到 consoleAppender 和 fileAppender。
你需要将此文件放置在 MapReduce 项目的 classpath 中,并在运行 MapReduce 作业时指定 log4j 配置文件的位置。例如,你可以使用以下命令来运行作业:
```
hadoop jar myjob.jar com.example.MyJob -Dlog4j.configuration=file:/path/to/your/log4j.xml input output
```
其中,-Dlog4j.configuration 参数指定 log4j 配置文件的位置。
阅读全文