springboot配置logback日志

1 篇文章 0 订阅

spring boot中默认继承了logback的日志配置。(pom中不需要另行引用logback的jar包)

  • 配置application.properties

springboot默认使用classpath路径下的logback-test.xml配置文件,找不到该文件时,会访问logback.xml文件,此时不需要在application中进行补充配置。自定义logback配置文件名时需要在application.properties中

  1. # config logback
  2. logging.config=classpath:logback-spring.xml
  3. logging.level.root=info

 logging.config是logback的配置路径

  • 添加loaback的配置文件 logback-spring.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="false">
  3. <!-- 此处引用springboot内含logback配置,可视情况是否保留 -->
  4. <include resource="org/springframework/boot/logging/logback/base.xml" />
  5.     <!-- 应用名称 -->
  6.     <property name="APP_NAME" value="dx" />
  7.     <!--在当前目录下创建名为logs目录做日志存放的目录 -->
  8.     <property name="LOG_HOME" value="/usr/local/logs/${APP_NAME}" />
  9.     <!-- 日志输出格式 -->
  10.     <property name="ENCODER_PATTERN" value="%d{yyyy-MM-dd  HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n" />
  11.     <!-- 控制台输出 -->   
  12.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  13.         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  14.              <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
  15.             <Pattern>${ENCODER_PATTERN}</Pattern>  
  16.         </encoder>
  17.         <!-- 生产环境添加如下配置,日志控制台只输出info级别日志 -->
  18.         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  19.             <level>INFO</level>
  20.         </filter>
  21.     </appender>
  22.     <!-- 按照每天生成日志文件 -->   
  23.     <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">   
  24.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  25.             <!--日志文件输出的文件名-->
  26.             <FileNamePattern>${LOG_HOME}/output.log.%d{yyyy-MM-dd}.log</FileNamePattern>
  27.             <!--日志文件保留天数-->
  28.             <MaxHistory>30</MaxHistory>
  29.         </rollingPolicy>   
  30.         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  31.             <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
  32.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>   
  33.         </encoder>
  34.         <!--日志文件最大的大小-->
  35.        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  36.          <MaxFileSize>10MB</MaxFileSize>
  37.        </triggeringPolicy>
  38.     </appender>
  39.     <!-- 错误日志:用于将错误日志输出到独立文件 -->
  40.     <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  41.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  42.             <fileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.log
  43.             </fileNamePattern>
  44.             <maxHistory>7</maxHistory>
  45.         </rollingPolicy>
  46.         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  47.             <pattern>${ENCODER_PATTERN}</pattern>
  48.         </encoder>
  49.         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  50.             <level>WARN</level>
  51.         </filter>
  52.     </appender>
  53.     <!-- 操作日志:用于将操作日志输出到文件 -->
  54.     <appender name="OPERATE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  55.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  56.             <fileNamePattern>${LOG_HOME}/operate.%d{yyyy-MM-dd}.log
  57.             </fileNamePattern>
  58.             <maxHistory>7</maxHistory>
  59.         </rollingPolicy>
  60.         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  61.             <pattern>${ENCODER_PATTERN}</pattern>
  62.         </encoder>
  63.         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  64.             <level>DEBUG</level>
  65.         </filter>
  66.     </appender>
  67.     <logger name="com.jobs.dao" level="DEBUG" addtivity="false">
  68.         <appender-ref ref="OPERATE_FILE" />
  69.     </logger>
  70.     <logger name="logger.operate" level="DEBUG" addtivity="false">
  71.         <appender-ref ref="OPERATE_FILE" />
  72.     </logger>
  73.     
  74.     <!--myibatis log configure-->
  75.     <logger name="com.apache.ibatis" level="TRACE"/>
  76.     <logger name="java.sql.Connection" level="DEBUG"/>
  77.     <logger name="java.sql.Statement" level="DEBUG"/>
  78.     <logger name="java.sql.PreparedStatement" level="DEBUG"/>
  79.     
  80.     <!-- 日志输出级别 -->
  81.     <root level="INFO">
  82.         <appender-ref ref="STDOUT" />
  83.         <appender-ref ref="FILE" />
  84.     </root>
  85.     
  86. </configuration>

 代码中记录日志

  1. package com.jobs.controller;
  2.  
  3. import javax.servlet.http.HttpServletResponse;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  8. import org.springframework.context.annotation.ComponentScan;
  9. import org.springframework.web.bind.annotation.PathVariable;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestMethod;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import com.jobs.exception.ExceptionEnum;
  14. import com.jobs.exception.NoFoundExcepiton;
  15. import com.jobs.model.User;
  16. import com.jobs.service.UserService;
  17.  
  18. @RestController
  19. @EnableAutoConfiguration
  20. @ComponentScan(basePackages={"com.jobs.model"})//添加的注解
  21. public class UserController {
  22.     
  23.     @Autowired
  24.     private UserService userService;
  25.     
  26.     /**
  27.      * 引入日志,注意都是"org.slf4j"包下
  28.      */
  29.     private final static Logger logger = LoggerFactory.getLogger(UserController.class);
  30.     
  31.     /**
  32.      * 根据员工工号,查询员工
  33.      * <p>Title: selectUser</p>  
  34.      * @author Liyan  
  35.      * @date   2018年1月11日 上午11:37:46  
  36.      * @param userId 员工工号
  37.      * @param httpServletResponse
  38.      * @return  User
  39.      * @throws Exception
  40.      */
  41.     @RequestMapping(value = "selectUser/{userId}",method = RequestMethod.GET)
  42.     public  User selectUser(@PathVariable String userId, HttpServletResponse httpServletResponse) throws Exception {
  43.         User user = userService.selectUser(userId);
  44.         logger.info("访问selectUser/{userId}接口,参数userId = " + "userId");
  45.         if (user == null) {
  46.             logger.error("根据员工工号,查询员工异常:e=" + ExceptionEnum.ERROR_NOFOUND.getValue());
  47.             throw new NoFoundExcepiton(ExceptionEnum.ERROR_NOFOUND.getValue());
  48.         }
  49.         return user;
  50.     }
  51.     
  52. }
  53.  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值