springboot中如何集成logback呢?

打印 上一主题 下一主题

主题 876|帖子 876|积分 2628

转自:
http://www.java265.com/JavaCourse/202201/2160.html
LogBack简介:
Logback是由log4j创始人设计的另一个开源日志组件,中文网站 http://www.logback.cn/ 。它当前分为下面下个模块:
logback-core:其它两个模块的基础模块
logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging
logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能
 
下文笔者讲述springboot中集成logback的方法分享,如下所示:
  1. SpringBoot默认使用logback作为日志框架
  2.   在生成springboot项目的时候可以直接勾选logback
  3.   则可以直接使用logback
  4. 下文讲述springboot使用logback的方法分享,如下所示
复制代码
步骤一:添加logback的maven依赖
  1. <dependency>
  2.     <groupId>ch.qos.logback</groupId>
  3.     <artifactId>logback-classic</artifactId>
  4. </dependency>
  5. 推荐使用slf4j+logback,后面项目更容易维护
  6. <dependency>
  7.   <groupId>org.slf4j</groupId>
  8.   <artifactId>slf4j-api</artifactId>
  9.   <version>1.7.21</version>
  10. </dependency>
  11. <dependency>
  12.   <groupId>ch.qos.logback</groupId>
  13.   <artifactId>logback-core</artifactId>
  14.   <version>1.1.7</version>
  15. </dependency>
  16. <dependency>
  17.   <groupId>ch.qos.logback</groupId>
  18.   <artifactId>logback-classic</artifactId>
  19.   <version>1.1.7</version>
  20. </dependency>
复制代码
步骤二:配置logback-spring.xml

resources下配置的spring-logback.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  3.    
  4.     <jmxConfigurator/>
  5.    
  6.     <property name="log.home_dir" value="/usr/local/springboot/log"/>
  7.     <property name="log.app_name" value="http-demo"/>
  8.    
  9.     <property name="log.maxHistory" value="20"/>
  10.     <property name="log.level" value="debug"/>
  11.     <property name="log.maxSize" value="5MB" />
  12.    
  13.     <appender name="CONSOLE" >
  14.         <encoder>
  15.             <pattern>
  16.                
  17.                 %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger - %msg%n
  18.             </pattern>
  19.         </encoder>
  20.     </appender>
  21.    
  22.    
  23.     <appender name="ERROR" >
  24.         
  25.         
  26.         <filter >
  27.             
  28.             <level>ERROR</level>
  29.             
  30.             <onMatch>ACCEPT</onMatch>
  31.             
  32.             <onMismatch>DENY</onMismatch>
  33.         </filter>
  34.         
  35.         <rollingPolicy >
  36.             
  37.             <fileNamePattern>
  38.                 ${log.home_dir}/error/%d{yyyy-MM-dd}/${log.app_name}-%i.log
  39.             </fileNamePattern>
  40.             
  41.             <maxHistory>${log.maxHistory}</maxHistory>
  42.             
  43.             <MaxFileSize>${log.maxSize}</MaxFileSize>
  44.         </rollingPolicy>
  45.         <encoder>
  46.             <pattern>
  47.                
  48.                 %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
  49.             </pattern>
  50.         </encoder>
  51.     </appender>
  52.    
  53.     <appender name="INFO" >
  54.         <filter >
  55.             <level>INFO</level>
  56.             <onMatch>ACCEPT</onMatch>
  57.             <onMismatch>DENY</onMismatch>
  58.         </filter>
  59.         <rollingPolicy >
  60.             <fileNamePattern>${log.home_dir}/info/%d{yyyy-MM-dd}/${log.app_name}-%i.log</fileNamePattern>
  61.             <maxHistory>${log.maxHistory}</maxHistory>
  62.             <MaxFileSize>${log.maxSize}</MaxFileSize>
  63.         </rollingPolicy>
  64.         <encoder>
  65.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger - %msg%n</pattern>
  66.         </encoder>
  67.     </appender>
  68.    
  69.     <appender name="DEBUG" >
  70.         <filter >
  71.             <level>DEBUG</level>
  72.             <onMatch>ACCEPT</onMatch>
  73.             <onMismatch>DENY</onMismatch>
  74.         </filter>
  75.         <rollingPolicy >
  76.             <fileNamePattern>${log.home_dir}/debug/%d{yyyy-MM-dd}/${log.app_name}-%i.log</fileNamePattern>
  77.             <maxHistory>${log.maxHistory}</maxHistory>
  78.             <MaxFileSize>${log.maxSize}</MaxFileSize>
  79.         </rollingPolicy>
  80.         <encoder>
  81.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger - %msg%n</pattern>
  82.         </encoder>
  83.     </appender>
  84.    
  85.     <appender name="app" >
  86.         <rollingPolicy >
  87.             <fileNamePattern>${log.home_dir}/app/%d{yyyy-MM-dd}/${log.app_name}-%i.log</fileNamePattern>
  88.             <maxHistory>${log.maxHistory}</maxHistory>
  89.             <MaxFileSize>${log.maxSize}</MaxFileSize>
  90.         </rollingPolicy>
  91.         <encoder>
  92.             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger - %msg%n</pattern>
  93.         </encoder>
  94.     </appender>
  95.    
  96.     <logger name="org.springframework.web" additivity="false" level="WARN">
  97.         <appender-ref ref="WARN"/>
  98.     </logger>
  99.    
  100.     <logger name="com.zgd" additivity="false" level="DEBUG" >
  101.         <appender-ref ref="app" />
  102.         <appender-ref ref="ERROR" />
  103.         
  104.         <appender-ref ref="CONSOLE" />
  105.     </logger>
  106.    
  107.     <root>
  108.         
  109.         <level value="${log.level}"/>
  110.         
  111.         <appender-ref ref="CONSOLE"/>
  112.         
  113.         
  114.     </root>
  115. </configuration>
复制代码
Controller中使用logback
  1. import org.slf4j.Logger;
  2. import org.slf4j.LoggerFactory;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. @RestController
  6. public class IndexController {
  7.     private final Logger logger = LoggerFactory.getLogger(getClass());
  8.     @GetMapping("/index")
  9.     public Object index() {
  10.         logger.debug("debug");
  11.         logger.info("info");
  12.         logger.warn("warn");
  13.         logger.error("error");
  14.         return "success";
  15.     }
  16. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表