Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将slf4j与log4j一起使用。在tomcat中部署时未在文件中创建日志_Java_Spring_Maven_Tomcat7 - Fatal编程技术网

Java 将slf4j与log4j一起使用。在tomcat中部署时未在文件中创建日志

Java 将slf4j与log4j一起使用。在tomcat中部署时未在文件中创建日志,java,spring,maven,tomcat7,Java,Spring,Maven,Tomcat7,在我的java webapp应用程序中,我正在使用带有log4j的slf4j。日志文件是在我使用maven jetty插件运行时创建的。但是当我在tomcat中部署它时,所有日志都附加在catalina.out中,而不是我的日志文件中。下面是我的Log4j.xml文件 maven依赖项如下所示 org.slf4j slf4j-log4j12 1.7.2 log4j log4j 1.2.16 运行时 org.slf4j slf4j-jdk14 1.7.2 org.slf4j slf4j

在我的java webapp应用程序中,我正在使用带有log4j的slf4j。日志文件是在我使用maven jetty插件运行时创建的。但是当我在tomcat中部署它时,所有日志都附加在catalina.out中,而不是我的日志文件中。下面是我的Log4j.xml文件




maven依赖项如下所示



org.slf4j
slf4j-log4j12
1.7.2
log4j
log4j
1.2.16
运行时
org.slf4j
slf4j-jdk14
1.7.2
org.slf4j
slf4j api
1.7.2

在我的例子中,项目有两个SLF4J实现,“log4j”和“logback”。 在应用程序部署catalina.out时,出现以下消息 “SLF4J:类路径包含多个SLF4J绑定…”。 通过pom中的依赖项排除删除了logback,在该文件被创建并由日志填充之后

请参阅此链接

您似乎正在为Jetty(log4j)和Tomcat(java.util.logging)使用不同的记录器。在这两种情况下使用log4j应该可以解决问题。如果您出于某种原因有意使用不同的记录器,那么请发布您正在使用的7月份的配置文件。您的意思是“slf4j”而不是“self4j”?无论是否加载log4j配置,都可以查看日志文件/catalina.out。maven pom引用
slf4j-jdk14
,它使用
java.util.logging
而不是log4j。删除它与
slf4j-log4j12
冲突的依赖项。我在此项目中使用eclipselink,并为此使用默认日志记录(在persistence.xml文件中定义文件名)。我没有为maven jetty使用任何单独的记录器
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[test] %p [%t] %c{1}.%M(%L) | %m%n" />
        </layout>
    </appender>
    <appender name="ROLL" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/tmp/myApp.log" />
        <param name="MaxFileSize" value="100MB" />
        <param name="MaxBackupIndex" value="50" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{HH:mm:ss:SSS} - %5p - %C{1}.%M(%L) - %m%n" />
        </layout>
    </appender>

    <logger name="net.sf.ehcache">
        <level value="ERROR" />
    </logger>

    <!-- Suppress success logging from InteractiveAuthenticationSuccessEvent -->
    <logger name="org.acegisecurity">
        <level value="ERROR" />
    </logger>

    <logger name="org.apache">
        <level value="WARN" />
    </logger>

    <logger name="org.eclipse">
        <level value="ERROR" />
    </logger>

    <logger name="java.sql">
        <level value="ERROR" />
    </logger>

    <logger name="org.hibernate">
        <level value="WARN" />
    </logger>

    <logger name="org.codehaus.mojo">
        <level value="ERROR" />
    </logger>

    <logger name="org.hibernate.SQL">
        <level value="ERROR" />
    </logger>

    <logger name="org.springframework">
        <level value="ERROR" />
    </logger>

    <!-- Suppress warnings from Commons Validator -->
    <logger name="org.apache.commons.validator.ValidatorResources">
        <level value="ERROR" />
    </logger>

    <logger name="com.myapp">
        <level value="ERROR" />
    </logger>
    <logger name="com.myapp">
        <level value="INFO" />
    </logger>
    <root>
        <level value="INFO" />
        <appender-ref ref="ROLL" />
    </root>

</log4j:configuration>
<dependency>
<groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.2</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.7.2</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.2</version>
    </dependency>