1、配置 maven 依赖
<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>
<version>1.3.8.RELEASE</version>
</dependency>
2、自定义匹配规则
package com.sample.common.log4j;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Priority;
public class CustomAppender extends DailyRollingFileAppender {
@Override
public boolean isAsSevereAsThreshold(Priority priority) {
//只判断是否相等,而不判断优先级
return this.getThreshold().equals(priority);
}
}
3、配置 log4j.properties
# Log4j配置
log4j.rootLogger=debug,stdout,info_log,debug_log,warn_log,error_log
#针对特定包
log4j.logger.org.springframework=WARN
# console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} [ %c >> %M:%L ]%n%m%n
#info log
log4j.logger.info_log=info
log4j.appender.info_log=com.sample.common.log4j.CustomAppender
log4j.appender.info_log.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.info_log.File=d:/logs/info.log
log4j.appender.info_log.Append=true
log4j.appender.info_log.Threshold=INFO
log4j.appender.info_log.layout=org.apache.log4j.PatternLayout
log4j.appender.info_log.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} [ %c >> %M:%L ]%n%m%n
#debug log
log4j.logger.debug_log=debug
log4j.appender.debug_log=com.sample.common.log4j.CustomAppender
log4j.appender.debug_log.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.debug_log.File=d:/logs/debug.log
log4j.appender.debug_log.Append=true
log4j.appender.debug_log.Threshold=DEBUG
log4j.appender.debug_log.layout=org.apache.log4j.PatternLayout
log4j.appender.debug_log.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} [ %c >> %M:%L ]%n%m%n
#warn log
log4j.logger.warn_log=warn
log4j.appender.warn_log=com.sample.common.log4j.CustomAppender
log4j.appender.warn_log.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.warn_log.File=d:/logs/warn.log
log4j.appender.warn_log.Append=true
log4j.appender.warn_log.Threshold=WARN
log4j.appender.warn_log.layout=org.apache.log4j.PatternLayout
log4j.appender.warn_log.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} [ %c >> %M:%L ]%n%m%n
#error
log4j.logger.error_log=error
log4j.appender.error_log=com.sample.common.log4j.CustomAppender
log4j.appender.error_log.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.error_log.File=d:/logs/error.log
log4j.appender.error_log.Append=true
log4j.appender.error_log.Threshold=ERROR
log4j.appender.error_log.layout=org.apache.log4j.PatternLayout
log4j.appender.error_log.layout.ConversionPattern=[%5p] %d{yyyy-MM-dd HH:mm:ss} [ %c >> %M:%L ]%n%m%n
4、使用方式
package com.sample.modules.web.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Log4jController {
private Logger logger = LoggerFactory.getLogger(Log4jController.class);
@RequestMapping(value = "/log")
public String log(){
logger.info("info message");
logger.debug("debug message");
logger.warn("warn message");
logger.error("error message");
return "success";
}
}