需求:将info和error信息用日志输出,方便日后查看排错。
一、Maven项目
1、引入log4j的依赖(pom.xml)
<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>2、添加log4j.properties配置文件(resources/log4j.properties)
#log4j.rootLogger=CONSOLE,info,error,DEBUG
#调试log4j的错误时打开
log4j.rootLogger=info,error,CONSOLE,DEBUG
#上线时打开,不需再打印错误
#log4j.rootLogger=error
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info
log4j.appender.info.append=true
#log4j.appender.info.File=/usr/local/api/logs/info/info.log
#log4j.appender.info.File=/Users/yelongyang/Downloads/logs/info/info.log
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = error
log4j.appender.error.append=true
#log4j.appender.error.File=/usr/local/api/logs/error/error.log
#log4j.appender.error.File=/Users/yelongyang/Downloads/logs/error/error.log
log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold = DEBUG
log4j.appender.DEBUG.append=true
#log4j.appender.DEBUG.File=/usr/local/api/logs/debug/debug.log
#log4j.appender.DEBUG.File=/Users/yelongyang/Downloads/logs/debug/debug.log
### Debug
log4j.logger.com.mybatis=DEBUG
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
##本地环境
log4j.appender.info.File=E:/Mzj/logs/info/info.log
log4j.appender.error.File=E:/Mzj/logs/error/error.log
log4j.appender.DEBUG.File=E:/Mzj/logs/debug/debug.log
#生产环境
#log4j.appender.info.File=/usr/local/spring-boot-api/logs/info/info.log
#log4j.appender.error.File=/usr/local/spring-boot-api/logs/error/error.log
#log4j.appender.DEBUG.File=/usr/local/spring-boot-api/logs/debug/debug.log
1、引入log4j的依赖(build.gradle)
一开始百度用的这个
configurations {
compile.exclude group:'ch.qos.logback'
}
dependencies {
compile ("org.springframework.boot:spring-boot-starter-web") {
exclude module: 'org.springframework.boot:spring-boot-starter-logging'
}
compile ('org.springframework.boot:spring-boot-starter-log4j')
}
结果报错:Error:Cause: org.gradle.internal.component.external.model.DefaultModuleComponentSelector
百思不得其解,再后来输入gradlew build指令得到以下错误信息
后来看到网上说
log4j是EOL,因此从Spring Boot 1.4起已经从Spring Boot 中删除了。如果要使用log4j,请使用org.springframework.boot:spring-boot-starter-log4j2
改后就ok了,就是上上图加个2,被这个2了一整天。23333
2、添加log4j2.properties配置文件(注意这里也有2)(resources/log4j2.properties)
status = error
name = PropertiesConfig
property.filename = target/rolling/rollingtest.log
filters = threshold
filter.threshold.type = ThresholdFilter
filter.threshold.level = debug
#appenders = console, I, E
#不要输出到console,要养成看日志文件的习惯
appenders =I, E
#appender.console.type = Console
#appender.console.name = STDOUT
#appender.console.target = SYSTEM_OUT
#appender.console.layout.type = PatternLayout
#appender.console.layout.pattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %c ] %m%n
appender.I.type = RollingFile
appender.I.name = InfoRollingFile
appender.I.fileName = /tsingche_ups/logs/info.log
appender.I.filePattern = /tsingche_ups/logs/info_%d{yyyy-MM-dd}_%i.log
appender.I.layout.type = PatternLayout
appender.I.layout.pattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %c ] %m%n
appender.I.policies.type = Policies
appender.I.policies.time.type = TimeBasedTriggeringPolicy
appender.I.policies.time.interval = 1
appender.I.policies.time.modulate = true
appender.I.policies.size.type = SizeBasedTriggeringPolicy
appender.I.policies.size.size=20M
appender.I.strategy.type = DefaultRolloverStrategy
appender.I.strategy.max = 100
appender.E.type = RollingFile
appender.E.name = ErrorRollingFile
appender.E.fileName = /tsingche_ups/logs/error.log
appender.E.filePattern = /tsingche_ups/logs/error_%d{yyyy-MM-dd}_i.log
appender.E.layout.type = PatternLayout
appender.E.layout.pattern = %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %c ] %m%n
appender.E.policies.type = Policies
appender.E.policies.time.type = TimeBasedTriggeringPolicy
appender.E.policies.time.interval = 1
appender.E.policies.time.modulate = true
appender.E.policies.size.type = SizeBasedTriggeringPolicy
appender.E.policies.size.size=20M
appender.E.strategy.type = DefaultRolloverStrategy
appender.E.strategy.max = 100
rootLogger.level = info
#rootLogger.appenderRefs = stdout,I,E
rootLogger.appenderRefs =I,E
#rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.I.ref = InfoRollingFile
rootLogger.appenderRef.I.level = info
rootLogger.appenderRef.E.ref = ErrorRollingFile
rootLogger.appenderRef.E.level = error
把BrowseController换成你自己的类名就好了。
private Logger logger = Logger.getLogger(BrowseController.class);