1. pom.xml文件中配置parent,版本選定[1.2.5.RELEASE]
關於為什么要選這個版本:我嘗試使用[1.4.1.RELEASE],但該版本庫里沒有[spring-boot-starter-log4j.jar],后面要使用這個jar,使用[1.2.5.RELEASE]版本的[spring-boot-starter-log4j.jar]來頂替,一直沒有成功。也許是我哪里配置不對,無法可想,只好把parent版本降至[1.2.5.RELEASE]
並不是說一定要用這個版本,有興趣的可以嘗試一下其他版本。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.5.RELEASE</version> </parent>
2. 刪除pom.xml文件中所有對日志jar包的引用
例如下面兩個,如果不刪除,和后面將要加入的依賴jar包會有沖突,導致日志不能正常輸出到文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> </dependency>
3. 排除spring boot對[spring-boot-starter-logging]的依賴,並增加依賴包[spring-boot-starter-log4j.jar]
話說步驟2中不是刪除了對[spring-boot-starter-logging]的依賴嗎,為什么還要再次排除呢?原因:可以點開[Effective POM]查看,parent中依然有兩處對[spring-boot-starter-logging]的依賴。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> </dependency>
4. 增加log4j.properties配置
配置每天輸出一個日志文件.
log4j.rootLogger=info,ServerDailyRollingFile,stdout log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd log4j.appender.ServerDailyRollingFile.File=D://test/test.log log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p [%c] - %m%n log4j.appender.ServerDailyRollingFile.Append=true log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d yyyy-MM-dd HH:mm:ss %p [%c] %m%n
至此配置完畢,趕快重啟服務看看效果吧。