8

我想关闭 Spring 3.1 的 log4j 日志记录,同时为我自己的代码进行调试。

我尝试将此行粘贴到我的 log4j.properties 中:

log4j.category.org.springframework = WARN 

要得到这个:

# Root Logger Setup:  Includes the level of reporting and appenders -> where
#                     log messages get sent                                              
log4j.rootLogger                            = DEBUG,ca,fa

log4j.category.org.springframework = WARN

#ca - Console Appender - Send messages to the console
log4j.appender.ca                          = org.apache.log4j.ConsoleAppender
log4j.appender.ca.layout                   = org.apache.log4j.PatternLayout
log4j.appender.ca.layout.ConversionPattern = [acme]: [%-5p] - %d{yyyy-MMM-dd HH:mm:ss} -  %c{1}:%M(): %m%n



#fa - File Appender - Send messages to a log file
log4j.appender.fa                            = org.apache.log4j.RollingFileAppender
log4j.appender.fa.File                       = acme.log
log4j.appender.fa.MaxFileSize                = 100KB
log4j.appender.fa.MaxBackupIndex             = 10
log4j.appender.fa.Threshold                  = DEBUG
log4j.appender.fa.layout                     = org.apache.log4j.PatternLayout
log4j.appender.fa.layout.ConversionPattern   = [%-5p] - %d{yyyy-MMM-dd HH:mm:ss} -  %c{2}:%M(): %m%n 

不过,关闭 Spring 的调试输出并不走运。

提前感谢您的帮助

史蒂夫

4

2 回答 2

8

您的所有依赖项都到位了吗?

1.3.2.3 使用 Log4J

许多人使用 Log4j 作为日志框架来进行配置和管理。它高效且成熟,事实上它是我们在构建和测试 Spring 时在运行时使用的。Spring 还提供了一些用于配置和初始化 Log4j 的实用程序,因此它在某些模块中对 Log4j 具有可选的编译时依赖项。

要使 Log4j 使用默认的 JCL 依赖项(commons-logging),您只需将 Log4j 放在类路径中,并为其提供配置文件(类路径根目录中的 log4j.properties 或 log4j.xml)。所以对于 Maven 用户来说,这是你的依赖声明:

<dependencies>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>3.0.0.RELEASE</version>
      <scope>runtime</scope>
   </dependency>
   <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.14</version>
      <scope>runtime</scope>
   </dependency>
</dependencies> 

这是用于登录控制台的示例 log4j.properties:

log4j.rootCategory=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

log4j.category.org.springframework.beans.factory=DEBUG
于 2012-06-06T16:19:43.567 回答
1

我想通了。

在我的类路径中,我有一个目录 C:\Classes 以方便我在试验时使用。我在那里有另一个 log4.properties 文件,它取代了打包在我的 WAR 中的文件,使它看起来下面的技术不起作用。我在 C:\Classes 中重命名了 log4.properties,一切都很好。

感谢所有看过的人,也感谢 Spring Source 的人们让这样做变得必要。很高兴知道,当我需要它时,我可以轻松地进行广泛的调试,而不仅仅是获得一个黑匣子。

于 2012-06-08T16:47:29.480 回答