繁体   English   中英

使用 log4j 在 Wildfly 中启用 spring 安全性日志记录

[英]Enable logging of spring security in Wildfly with log4j

我想用 Log4j 记录与 Spring 安全性 (4.2.16) 相关的任何内容。

它是部署在 Wildfly 10.1.0 中的 EAR 文件,其中 log4j.xml 部署到 EAR 中包含的 WAR 文件的 WEB-INF/类中

log4.xml 有以下类别:

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <param name="Threshold" value="debug" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
               value="%d{HH:mm:ss} %p [%t]:%c{3}.%M()%L - %m%n" />
    </layout>
</appender>

<category name="org.springframework.security" additivity="false">
    <priority value="TRACE" />
    <appender-ref ref="STDOUT"/>
</category>

为任何项目类打印日志,但 Log4j 配置不适用于 spring 安全性。

调试后 logger.isDebugEnabled() 在 AffirmativeBased class 中返回 false

如何获取与 spring 安全相关的任何日志?

似乎(根据我的测试)第三方依赖项(至少是 Spring)的日志记录没有使用项目的 log4.xml 配置,而是在 Wildfly 的日志记录子系统中。

我已将以下几行添加到standalone-full.xml(在日志子系统定义内),它现在正在记录:

<logger category="org.springframework.security">
  <level name="TRACE"/>
  <handlers>
    <handler name="CONSOLE"/>
  </handlers>
</logger>

我没有尝试过,但可能有效(并且作为更好的解决方案)在 EAR 的 jboss-deployment-structure.xml 中表明该应用程序不包括 Wildfly 自己的日志记录子系统,并将所有日志记录(包括第三方依赖项)依赖于 log4j。 请参阅覆盖 WildFly中的日志记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM