我的申请中有一些审核。每个审计事件都有自己的log4j类别,其名称以相同的字符串为前缀。
EG: 一般审计类别名称:com.company.audit
web登录类别名称:com.company.audit.web.login
创建一些东西:com.company.audit.api.create
等。
默认情况下应记录某些类别,但有些类别不是=>
<category name="com.compamy.audit" additivity="true">
<priority value="INFO"/>
</category>
<category name="com.company.audit.web.login" additivity="true">
<priority value="DEBUG">
</category>
默认情况下,不应记录INFO第二类。至少我认为它但它不起作用。有关如何覆盖“子类别”的日志记录级别的任何帮助。
注意:我没有太多可能改变整个命名方案
增加:
这是appender的配置:
<appender class="org.apache.log4j.RollingFileAppender" name="Company_AUDIT">
<param name="File" value="${jboss.server.log.dir}/company_audit.log"/>
<param value="10000KB" name="MaxFileSize"/>
<param value="10" name="MaxBackupIndex"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="foo"/>
</layout>
</appender>
答案 0 :(得分:1)
您的配置意味着:对于类别com.company.audit
,请记录级别INFO
或更高级别的所有邮件。对于com.company.audit.web.login
,请记录级别DEBUG
或更高级别的所有邮件。因此,记录了第二类的所有消息,这就是您要求的内容。
您真正想要的是选择是否显示第二个类别。我可以想到两种方法:
在您的代码中,使用约定com.company.audit
中的所有邮件都将记录在INFO
级别,com.company.audit.web.login
中的所有邮件都将记录在{{1}级}}。在您的配置中,您只需要设置主类别的级别:
DEBUG
:显示所有消息DEBUG
:不显示“可选”消息(即子类别的消息)在配置中,如果要禁用其消息,请将INFO
置于级别com.company.audit.web.login
。如果要激活它,只需注释该行(它将从主类别继承配置)。
我更喜欢第二个选项,因为您可以继续使用消息重力级别(最初的含义)。