当我运行我的应用程序时,它会在 bean 初始化时停止,但不显示任何日志条目。所以我不知道发生了什么:
Log4j.properties
log4j.rootLogger=DEBUG, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
org.springframework=DEBUG
org.springframework.beans.factory.support=DEBUG
log4j.logger.org.springframework.beans.factory.support=DEBUG
log4j.logger.org.springframework.beans=DEBUG
log4j.category.org.springframework.beans.factory=DEBUG
log4j.logger.org.springframework=DEBUG
log4j.logger.org.hibernate.hql.ast.AST=info
log4j.logger.org.hibernate.tool.hbm2ddl=warn
log4j.logger.org.hibernate.cache=info
log4j.logger.org.hibernate.jdbc=debug
log4j.logger.org.hibernate.type=trace
log4j.additivity.org.hibernate.SQL=false
log4j.logger.org.hibernate.transaction=debug
log4j.logger.java.sql.Statement=DEBUG
log4j.appender.stdout.layout.ConversionPattern=%d %t %C{1}- %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${log4j.appender.R.File}
log4j.appender.R.MaxFileSize=2MB
log4j.appender.R.MaxBackupIndex=0
log4j.appender.R.Append=true
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %t (%l) - %m%n
我想要得到类似的东西:
"BeanName" initialized
"BeanName" initialized
etc...
这样我就知道初始化在哪里停止了。当bean初始化时,是否有可能在日志中获得这样的输出?
您需要将“org.springframework.beans.factory.support.DefaultListableBeanFactory”设置为debug级别。输出看起来像这样:
... - Creating instance of bean ...
... - Finished creating instance of bean ...
更新:
将此添加到 log4j.properties:
log4j.logger.org.springframework.beans.factory.support.DefaultListableBeanFactory=DEBUG
请记住,Spring 使用的是 commons-logging 框架,因此这些行不会出现在您的 Log4J 日志中。要重定向,请使用SLF4J。将 slf4j-api.jar、jcl-over-slf4j.jar、slf4j-log4j12.jar 和 log4j.jar 添加到您的 lib 目录,并从中删除 commons-logging.jar。
添加到您的 log4j xml(检查您是否已经有一个带有 lavel ERROR 的文件,将其更改为 INFO 或 DEBUG
<logger name="org.springframework">
<level value="INFO" />
</logger>