spring应用程序无法使用slf4j-log4j初始化日志记录

时间:2014-06-06 14:25:29

标签: java maven logging

在我的spring应用程序中,我正在尝试使用slf4j-log4j日志记录机制,但它似乎并不适用于我。它也没有给出任何错误,也没有初始化日志记录机制。

用pom.xml编写的

依赖关系如下......

     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${springVersion}</version>
        <exclusions>
         <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
         </exclusion>
        </exclusions>
    </dependency>

    <!-- log4j and slf4j -->
   <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
      <version>1.6.1</version>
   </dependency>
   <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.6.1</version>
      <scope>provided</scope>
   </dependency>
   <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.6.1</version>
      <scope>provided</scope>
   </dependency>
   <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.14</version>
      <scope>provided</scope>
   </dependency>

log4j.properties文件如下

log4j.rootLogger=INFO, file, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p] %d{mm:ss} (%F:%M:%L)%n%m%n%n

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=D:/logs/ov/ov
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %m %n
log4j.appender.file.DatePattern=yyyy-MM-dd-HH'.log'

项目运行良好......但日志没有建立。这是我在tomcat上运行项目时控制台显示的内容

Jun 06, 2014 7:54:08 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jdk1.7.0_10\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre7/bin/client;C:/Program Files (x86)/Java/jre7/bin;C:/Program Files (x86)/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin;C:\Program Files (x86)\Java\jdk1.7.0_10\bin;D:\Installations\apache-maven-3.0.4\bin;D:\eclipse;;.
Jun 06, 2014 7:54:08 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:onevalue' did not find a matching property.
Jun 06, 2014 7:54:08 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jun 06, 2014 7:54:08 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jun 06, 2014 7:54:08 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1063 ms
Jun 06, 2014 7:54:08 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jun 06, 2014 7:54:08 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.35
Jun 06, 2014 7:54:17 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://tiles.apache.org/tags-tiles is already defined
Jun 06, 2014 7:54:17 PM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
Jun 06, 2014 7:54:17 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Jun 06, 2014 7:54:23 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'onevalue'
Jun 06, 2014 7:54:27 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jun 06, 2014 7:54:27 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jun 06, 2014 7:54:27 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 18184 ms

1 个答案:

答案 0 :(得分:0)

我唯一能看到的是你使用的是所有这些库的旧版本,并且可能提供的范围不适合你的配置。 Maven docs on provided

  

<强>提供

     

这很像compile,但表示您希望JDK或容器在运行时提供依赖项。例如,在为Java Enterprise Edition构建Web应用程序时,您可以将Servlet API和相关Java EE API的依赖关系设置为提供的范围,因为Web容器提供了这些类。此范围仅在编译和测试类路径中可用,并且不可传递。

试试这个:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.14</version>
</dependency>