使用log4j编写审计日志

New*_*bie 9 java log4j

我有一个应用程序需要写两种不同类型的日志:应用程序日志和审计日志.应用程序日志用于调试目的,而审计日志用于记录执行的操作.两个日志都将位于不同的文件中,每个文件应仅包含上述日志(意味着审核日志文件不能包含应用程序日志,反之亦然).

如何使用log4j实现这一点?
我知道实现这一点的一种方法是在log4j中定义自定义日志级别.还有其他/更好的方法吗?

Ana*_*nte 4

我有同样的用例。在 log4j.xml 中,您可以定义两个不同的记录器并为每个记录器定义一个附加程序。因此,举个例子:

<logger name="LOGGER_1" additivity="false">
    <appender-ref ref="LOGGER_FILE_1"/>
</logger>

<appender name="LOGGER_FILE_1" class="org.jboss.logging.appender.RollingFileAppender">
   <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
   <param name="File" value="${jboss.server.log.dir}/loggerFile1.log"/>
   <param name="Append" value="true"/>
   <param name="MaxFileSize" value="20MB"/>
      <param name="MaxBackupIndex" value="5"/>

      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
      </layout>
</appender>
Run Code Online (Sandbox Code Playgroud)

在 Java 代码中,您可以使用“Logger.getLogger("LOGGER_1")”创建一个记录器,它将日志输出写入定义的文件。