1.导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>
2.排除springboot自带的日志工具
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions><!-- 去掉默认日志配置logback --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>
3.写log4j.properties文件
log4j.rootLogger=info,error,warn,stdout ##############打印到平台的日志################## 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=%-d{yyyy-MM-dd HH:mm:ss}-[%p:%X{traceID}]-(%C:%L) %m%n ##############WARN打印的文件的日志################## log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender log4j.appender.tracking.Encoding=utf-8 log4j.appender.warn.layout=org.apache.log4j.PatternLayout log4j.appender.warn.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}-[%p]-(%C:%L) %m%n #输出文件位置 log4j.appender.warn.File=D:/log/log.txt log4j.appender.warn.DatePattern='.'yyyy-MM-dd-HH #mybatis显示SQL语句日志配置 log4j.logger.com.example.demo.mapper=DEBUG
4.简单测试
public class LogRecord implements HandlerInterceptor { //从日志工厂获取日志对象 private final Logger log = LoggerFactory.getLogger(LogRecord.class); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //请求开始时间 DateTime reqTime = DateUtil.dateSecond(); log.info("请求地址:{}", request.getRequestURL()); log.info("请求类型:{}", request.getMethod()); HandlerMethod handler1 = (HandlerMethod) handler; log.info("请求方法:{}", handler1.getMethod().getName()); log.info("方法参数:{}", handler1.getMethod().getParameters()); log.info("请求耗时:{}s", DateUtil.between(reqTime, DateUtil.dateSecond(), DateUnit.SECOND)); return true; } }
5.效果
控制台:
文件: