【问题标题】:log4j logger filtering by package name is ignored for OWASP ESAPIOWASP ESAPI 忽略按包名过滤的 log4j 记录器
【发布时间】:2015-03-30 17:05:25
【问题描述】:

我目前为 log4j 配置了一个 XML 配置文件,该文件有两个附加程序,“文件”和“电子邮件”。这两个都正常工作,但我不想为 ESAPI 内部生成的错误发送电子邮件,所以我将一个新的记录器放入 XML 文件中。完整的记录器列表是:

<logger name="com.companyname" additivity="false">
    <level value="INFO" />
    <appender-ref ref="file" />
    <appender-ref ref="email" />
</logger>

<logger name="org.hibernate" additivity="false">
    <level value="ERROR" />
    <appender-ref ref="file" />
    <appender-ref ref="email" />
</logger>

<logger name="org.springframework" additivity="false">
    <level value="ERROR" />
    <appender-ref ref="file" />
    <appender-ref ref="email" />
</logger>

<logger name="org.owasp" additivity="false">
    <level value="ERROR" />
    <appender-ref ref="file" />
</logger>

<root>
    <level value="ERROR" />
    <appender-ref ref="file" />
    <appender-ref ref="email" />
</root>

但是,这不起作用。我仍然会收到有关 ESAPI(特别是 org.owasp.esapi.reference.Log4JLogger 类)中生成的错误的电子邮件。

我也尝试过使用“org.owasp.esapi”、“org.owasp.esapi.reference”、“org.owasp.esapi.reference.Log4JLogger”,甚至“org”,但所有这些都失败了以完全相同的方式工作。

我唯一能做的就是让它停止为 ESAPI 错误发送邮件,就是从根记录器中删除“电子邮件”appender-ref,我不想这样做。有谁知道这里发生了什么?

【问题讨论】:

    标签: java logging log4j


    【解决方案1】:

    我意识到 ESAPI 将您放在 esapi.properties 的属性 Logger.ApplicationName 中的名称加上“:”添加到类包中。例如在我的情况下,如果我有一个类 mypackage.MyClass ESAPI 打印:ExampleApplication:mypackage.MyClass - [EVENT SUCCESS Anonymous:null@unknown ....

    我需要输入我的 log4j.xml

    <logger name="ExampleApplication:mypackage.MyClass" additivity="false">
        <level value="INFO" />
        <appender-ref ref="file" />
    </logger>
    

    我不知道这是否可能是同样的问题,因为您的问题不在所有者类中,希望这可以帮助您。

    【讨论】:

      【解决方案2】:

      事实证明,ESAPI 使用与应用程序的其余部分完全不同的方案来生成其类别名称。在疯狂调试 ESAPI 和 Log4J 代码后,我确定 ESAPI 产生的错误属于“IntrusionException”类别,因此正确的记录器应该是:

      <logger name="org.owasp" additivity="false">
          <level value="ERROR" />
          <appender-ref ref="file" />
      </logger>
      

      【讨论】:

      • 对不起,我看不出这段代码与您问题中的代码有何不同。
      • 你说得对,我贴错了。我明天上班时再检查一遍,看看我做了什么。
      猜你喜欢
      • 2021-08-13
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 2013-10-26
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多