当前位置: 首页 > 知识库问答 >
问题:

调试Spring配置不起作用

韦宣
2023-03-14

我在may Spring应用程序中添加了安全问题,所以我想通过log4j调试Spring。

Log4j正在工作,因为我的服务正在将调试信息记录到控制台。但是Spring没有记录任何东西到我的控制台

这是我的log4j。xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
    <appender name="CA" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{MM/dd/yy - HH\:mm\:ss,SSS} [%t] %-5p %c %x - %m%n" />
        </layout>
    </appender>
    <logger name="org.springframework" additivity="false">
        <level value="DEBUG"/>
        <appender-ref ref="CA"/>
    </logger>   
    <logger name="com.test" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="CA"/>
    </logger>
</log4j:configuration>

在我如此放置--Dlog4j时,它得到了很好的考虑。在我的服务器启动选项中调试。结果:

log4j: Preferred configurator class: org.apache.log4j.xml.DOMConfigurator
log4j: System property is :null
log4j: Standard DocumentBuilderFactory search succeded.
log4j: DocumentBuilderFactory is: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
log4j: debug attribute= "null".
log4j: Ignoring debug attribute.
log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [org.springframework] additivity to [false].
log4j: Level value for org.springframework is  [DEBUG].
log4j: org.springframework level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{MM/dd/yy - HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n].
log4j: Adding appender named [CA] to category [org.springframework].
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [com.test] additivity to [false].
log4j: Level value for com.testis  [INFO].
log4j: com.testlevel set to INFO
log4j: Adding appender named [CA] to category [com.test].
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: System property is :null
log4j: Standard DocumentBuilderFactory search succeded.
log4j: DocumentBuilderFactory is: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
log4j: debug attribute= "null".
log4j: Ignoring debug attribute.
log4j: reset attribute= "false".
log4j: Threshold ="null".
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [org.springframework] additivity to [false].
log4j: Level value for org.springframework is  [DEBUG].
log4j: org.springframework level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{MM/dd/yy - HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n].
log4j: Adding appender named [CA] to category [org.springframework].
log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [com.test] additivity to [false].
log4j: Level value for com.test is  [INFO].
log4j: com.test level set to INFO
log4j: Adding appender named [CA] to category [com.test].

我尝试在我的网站上添加这个。正如在这个问题中所说的xml

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

我在其他应用程序中使用了此调试,但我真的没有看到原因。。。谢谢你的帮助

共有1个答案

云宝
2023-03-14

我找到了!

使用-Dorg。阿帕奇。平民登录中。诊断。dest=STDOUT您可以调试commons日志记录配置。

我发现我的依赖项(jcl-over-slf4j-1.5.8.jar)中的jar有一个META-INF/services/org。阿帕奇。平民登录中。将记录器定义为SLF4J的LogFactory。

所以添加-Dorg.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl,我将记录器恢复为log4j。

 类似资料:
  • 问题内容: 我正在使用Spring和Hibernate并在Websphere上运行的Java应用程序上工作。我遇到了一个问题,我希望Spring将Dao加载到我的对象中,但是由于某种原因却没有发生。(以相同方式指定的另一个Dao可以很好地加载。) 问题是-我该如何调试Spring如何确定要加载的内容?我可以在Spring上打开日志记录吗?在哪里? 问题答案: 是的,Spring框架日志记录非常详细

  • 通过使用IntelliJ Idea CE在调试模式(spring-boot:run)下运行应用程序,在使用Spring Boot2.2时根本不会出现断点。相反,当回滚到Spring Boot 2.1.1时,一切都很好。我做错了什么?为2.2添加选项/标志以使调试器工作吗?

  • 问题内容: 我正在尝试使用Spring Security,并且有一个用例,其中我想保护不同的登录页面和不同的URL集。 这是我的配置: 这些类是具有注释的另一个类的内部类。 的安全性工作正常,但所有页面均未得到保护,登录页面未发生任何重定向。我搜索了其他答案,但没有一个有效。 问题答案: 看一下: 1正常配置身份验证 2创建一个包含的实例,以指定应首先考虑的对象。 3 r指出这仅适用于以开头的 4

  • 问题内容: 我正在尝试使用Spring Security,并且有一个用例,其中我想保护不同的登录页面和不同的URL集。 这是我的配置: 这些类是具有注释的另一个类的内部类。 的安全性工作正常,但所有页面均未得到保护,登录页面未发生任何重定向。我搜索了其他答案,但没有一个有效。 问题答案: 看一下Spring Security Reference: 1正常配置身份验证 2创建一个包含的实例,以指定应

  • 这是我第一次使用Spring-Data-jpa和Querydsl。 我正在尝试配置数据模型的自动生成。 我执行了以下步骤: 我在pom中添加了以下依赖项。xml 然后我添加了以下插件 但我总是在pom中遇到同样的错误。xml: 生命周期配置未涵盖插件执行:com。迈塞马。maven:maven apt插件:1.0.2:流程(执行:默认,阶段:生成源代码) 并且未生成和填充target/genera

  • 我根据参考指南 http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-application-property-files 设置了一个 Spring Boot 1.3.0 应用程序。在OS X上一切正常,文件从当前目录加载。表达式已正确解