slf4j+log4j升級log4j2
阿新 • • 發佈:2018-04-08
log4j log4j2 slf4j 首先在pom文件中加入以下依賴
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.6.2</version> </dependency>
刪除原來的slf4j依賴
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
重寫log4j.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="60"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <!-- 定義類型為Console的Appender --> <PatternLayout pattern="%d [%t] %-5p %c{1} [%L] - %m%n"/> <!-- 定義類型為Pattern的Layout --> </Console> <RollingRandomAccessFile name="rollingRandomAccessFileAppender" immediateFlush="true" fileName="${logPath}/acc.log" filePattern="${logPath}/acc.log.%d{yyyy-MM-dd-HH}" append="true"> <PatternLayout pattern="%d [%t] %-5p %c{1} [%L] - %m%n" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true"/> </Policies> </RollingRandomAccessFile> </Appenders> <Loggers> <Root level="info"> <!-- 定義Root Logger,其日誌級別為info --> <AppenderRef ref="Console"/> <!-- Root Logger的Appender引用上面定義的Console --> </Root> <Logger name="HelloWorld" level="info" additivity="false"> <!-- 定義名字為HelloWorld的Logger,其日誌級別為info,additivity為false --> <AppenderRef ref="Console"/> <!-- Root Logger的Appender引用上面定義的Console --> <AppenderRef ref="rollingRandomAccessFileAppender"/> </Logger> </Loggers> </Configuration>
項目中原來的log4j是根據每個小時打印日誌,因此用了RollingRandomAccessFile。
然後,將log4j.xml重新命名為log4j2.xml,並且在web.xml中取消原來的context配置!
由於上面這一點一開始沒有做,只是在原來log4j.xml的基礎上把內容修改了,所以打包到服務器上運行時,一直沒有日誌文件輸出,因為pom文件中依賴的其他項目帶有log4j相關的jar包,slf4j不知道該使用哪一個。
升級完畢。
slf4j+log4j升級log4j2