【发布时间】:2016-02-04 23:01:03
【问题描述】:
我想 Spring 使用 Log4j2 进行日志记录,因为有时我想获得调试级别。我已经阅读了大量相关主题和示例,但没有任何效果。我设法配置 log4j2 并从我自己的课程中登录,但不是从 spring 中。
我得到了什么:
Maven 依赖:
<dependencies>
<!-- SERVLT API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- APACHE TILES -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>3.0.5</version>
</dependency>
<!-- APACHE FILEUPLOAD -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!-- Spring and Transactions -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<!-- Spring ORM support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<!-- SPRING SECURITY -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<!-- LOGGING -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${logger.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${logger.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>${logger.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${logger.version}</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- POSTGRE DRIVER -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1207.jre7</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- JACKSON -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>
log4j.xml:(编辑:文件名是 log4j2.xml - 抱歉有错误)
<Configuration status="debug">
<Appenders>
<RollingFile name="systemLog" fileName="C:\\test\logs\system.log" includeLocation="true"
filePattern="C:\\test\logs\system-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{ISO8601} - %-5level [%t] %C %M %m%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="15 MB"/>
</Policies>
</RollingFile>
<Async name="systemAsyncAppender" includeLocation="true">
<AppenderRef ref="systemLog" />
</Async>
</Appenders>
<Loggers>
<Logger name="org.springframework.web" level="debug">
<AppenderRef ref="systemAsyncAppender" />
</Logger>
<Root level="debug" includeLocation="true">
<AppenderRef ref="systemAsyncAppender" />
</Root>
</Loggers>
如果有什么相关的事情我没有告诉 - 告诉我
如果能帮我解决这个问题,我会非常高兴
【问题讨论】:
-
我在您的 pom.xml 文件中没有看到任何 log4j2 依赖项。
-
1.我相信 Log4J 2 的配置文件是 log4j2.xml 2。你不需要 Log4J2 来获得调试级别。几乎任何 SLF4j 绑定都可以做到
-
@AshraffAliWahab
org.apache.logging.log4j:log4j-*实际上是 log4j2 的神器 -
@Adrian Shum - 你是对的,我在帖子中犯了一个错误。该文件是 log4j2.xml,我知道它是正确的。你能链接到一些配置 SLF4j 的例子吗?我并没有真正依赖 log4j2,所以我对其他日志框架持开放态度。
-
@TomaszSkaba 您找到解决方案了吗?我遇到了同样的问题。我尝试过将 commons-logging 与 jcl 桥或 slf4j 与它的桥一起使用,但 spring 仍然没有记录。尽管如此,在这两种配置中,我都设法在应用程序中创建了我的日志,并且休眠日志正常工作。
标签: java spring maven spring-mvc log4j2