log4j.xml 中配置多个输出文件

本文详细介绍如何使用log4j配置不同输出日志文件,包括控制台、每日滚动文件及特定任务日志,通过实例展示了日志文件的精细管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在的项目中,对于日志的配置,我们有时候需要配置对应不同的输出日志文件,例如按照模块划分,按照功能划分,分别输出到不同的日志文件中,下面介绍一下,怎么配置不同的输出日志文件。

下面是一整块的log4j.xml配置。如果对怎么配置spring 和 log4j不了解的话,可以参考我之前写的一篇文件,spring log4j配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
<log4j:configuration>

    <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
        <param name="threshold" value="ERROR" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
        </layout>
    </appender>

    <appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="/root/logs/web.log" />
        <param name="append" value="true" />
        <param name="encoding" value="UTF-8" />
        <!--设置日志备份频率,默认:为每天一个日志文件 -->
        <param name="datePattern" value="'.'yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n"/>
        </layout>
    </appender>

    <appender name="TIME_TASK_APPENDER_LOG" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="logs/time_task.log" /><!-- 设置日志输出文件名 -->
        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
        <param name="Append" value="true" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
        </layout>
    </appender>

    <logger name="time_task" additivity="false">
        <level value="info" />
        <appender-ref ref="TIME_TASK_APPENDER_LOG" />
    </logger>

    <!-- 根logger的设置-->
    <root>
        <priority value ="INFO"/>
        <appender-ref ref="myConsole"/>
        <appender-ref ref="myFile"/>
    </root>

</log4j:configuration>

下面对上面的配置代码一一讲解:

<appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
        <param name="threshold" value="ERROR" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
        </layout>
    </appender>

这块是输出控制台的配置

<appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="/root/logs/web.log" />
        <param name="append" value="true" />
        <param name="encoding" value="UTF-8" />
        <!--设置日志备份频率,默认:为每天一个日志文件 -->
        <param name="datePattern" value="'.'yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n"/>
        </layout>
    </appender>

这里是配置每天的日志产生,每天产生一个日志文件,格式是web.log.2018-09-20

<appender name="TIME_TASK_APPENDER_LOG" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="logs/time_task.log" /><!-- 设置日志输出文件名 -->
        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
        <param name="Append" value="true" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
        </layout>
    </appender>

    <logger name="time_task" additivity="false">
        <level value="info" />
        <appender-ref ref="TIME_TASK_APPENDER_LOG" />
    </logger>

这里是重点,我们配置了一个定时任务产生的log,下面看一下怎么使用它。

代码中的使用如下:注意:引用的是

org.apache.log4j.Logger

Logger.getLogger("time_task")对应的就是logger 的name = time_task

下面看下效果:有两个日志配置文件,一般的日志文件是在web.log中,定时任务的日志文件在time_task.log中。

完成配置!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值