Log4j:特定日志记录

时间:2015-05-26 12:00:43

标签: java log4j

我有一个服务类,可以从ftp服务器导入和解析文件。 当用户选择特定操作时,可以从Spring控制器执行此任务。

计划任务(TimerTask)使用相同的服务,每天在特定时间执行相同的操作。

我会将用户/计划执行的日志记录分成不同的文件:

logs/scheduledImport.log
logs/userImport.log

是否可以使用Log4j?

2 个答案:

答案 0 :(得分:1)

当然。首先,您必须定义2个不同的文件追加器。

<appender name="default.file" class="org.apache.log4j.FileAppender">
    <param name="file" value="/log/userImport.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] - %m%n" />
    </layout>
</appender>
<appender name="another.file" class="org.apache.log4j.FileAppender">
    <param name="file" value="/log/scheduledImport.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] - %m%n" />
    </layout>
</appender>

然后定义记录器:

<logger name="com.foo.UserService" additivity="false">
    <level value="debug" />
    <appender-ref ref="default.file" />
</logger>
<logger name="com.foo.ScheduledService" additivity="false">
    <level value="debug" />
    <appender-ref ref="another.file" />
</logger>

答案 1 :(得分:0)

您可以使用不同的loggger实例。在这种情况下,您可以为每个记录器应用不同的设置(输出文件)。