首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用log4j编写审计日志

使用log4j编写审计日志
EN

Stack Overflow用户
提问于 2012-09-25 16:41:16
回答 5查看 13.1K关注 0票数 9

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

如何使用log4j实现这一点?

我知道实现这一点的一种方法是在log4j中定义自定义日志级别。有没有其他/更好的方法呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-25 16:55:06

我也有过同样的用例。在您的log4j.xml中,您可以为每个记录器定义两个不同的记录器和一个附加器。因此,下面是一个示例:

代码语言:javascript
复制
<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>

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

票数 4
EN

Stack Overflow用户

发布于 2012-09-25 16:43:44

我不认为你需要一个新的水平。相反,您需要一个特定的Logger (或一组Loggers)。

通常,您使用类/包名实例化它们。但是,出于审计的目的,您可以简单地使用名称" audit“(或类似名称)实例化一个新的Logger,然后使用标准机制进行适当的配置。

票数 3
EN

Stack Overflow用户

发布于 2012-09-30 11:12:53

创建Log4j 2.0时,支持审计日志记录是其主要目的之一。推荐的使用模式是先使用Log4j(或SLF4j)的EventLogger,然后再使用FlumeAppender,这可以保证交付到目标日志库。有关详细信息,请参阅http://logging.apache.org/log4j/2.x/manual/eventlogging.htmlhttp://logging.apache.org/log4j/2.x/manual/appenders.html#FlumeAppender。如果您有其他问题,请随时在Apache Log4j邮件列表上提问。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12579187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档