悠扬随风 发表于 2022-9-3 22:46:59

springboot中如何集成logback呢?

转自:
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的方法分享,如下所示:
SpringBoot默认使用logback作为日志框架
在生成springboot项目的时候可以直接勾选logback
则可以直接使用logback
下文讲述springboot使用logback的方法分享,如下所示步骤一:添加logback的maven依赖

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>
推荐使用slf4j+logback,后面项目更容易维护

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>步骤二:配置logback-spring.xml

resources下配置的spring-logback.xml
<?xml version="1.0" encoding="UTF-8" ?>






<configuration scan="true" scanPeriod="60 seconds" debug="false">

   
    <jmxConfigurator/>

   
    <property name="log.home_dir" value="/usr/local/springboot/log"/>
    <property name="log.app_name" value="http-demo"/>
   
    <property name="log.maxHistory" value="20"/>
    <property name="log.level" value="debug"/>
    <property name="log.maxSize" value="5MB" />

   
    <appender name="CONSOLE" >
      <encoder>
            <pattern>
               
                %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger - %msg%n
            </pattern>
      </encoder>
    </appender>

   
   
    <appender name="ERROR" >
      
      
      <filter >
            
            <level>ERROR</level>
            
            <onMatch>ACCEPT</onMatch>
            
            <onMismatch>DENY</onMismatch>
      </filter>
      
      <rollingPolicy >
            
            <fileNamePattern>
                ${log.home_dir}/error/%d{yyyy-MM-dd}/${log.app_name}-%i.log
            </fileNamePattern>
            
            <maxHistory>${log.maxHistory}</maxHistory>
            
            <MaxFileSize>${log.maxSize}</MaxFileSize>
      </rollingPolicy>
      <encoder>
            <pattern>
               
                %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            </pattern>
      </encoder>
    </appender>

   
    <appender name="INFO" >
      <filter >
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
      </filter>
      <rollingPolicy >
            <fileNamePattern>${log.home_dir}/info/%d{yyyy-MM-dd}/${log.app_name}-%i.log</fileNamePattern>
            <maxHistory>${log.maxHistory}</maxHistory>
            <MaxFileSize>${log.maxSize}</MaxFileSize>
      </rollingPolicy>
      <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger - %msg%n</pattern>
      </encoder>
    </appender>


   
    <appender name="DEBUG" >
      <filter >
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
      </filter>
      <rollingPolicy >
            <fileNamePattern>${log.home_dir}/debug/%d{yyyy-MM-dd}/${log.app_name}-%i.log</fileNamePattern>
            <maxHistory>${log.maxHistory}</maxHistory>
            <MaxFileSize>${log.maxSize}</MaxFileSize>
      </rollingPolicy>
      <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger - %msg%n</pattern>
      </encoder>
    </appender>

   
    <appender name="app" >
      <rollingPolicy >
            <fileNamePattern>${log.home_dir}/app/%d{yyyy-MM-dd}/${log.app_name}-%i.log</fileNamePattern>
            <maxHistory>${log.maxHistory}</maxHistory>
            <MaxFileSize>${log.maxSize}</MaxFileSize>
      </rollingPolicy>
      <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %logger - %msg%n</pattern>
      </encoder>
    </appender>

   
    <logger name="org.springframework.web" additivity="false" level="WARN">
      <appender-ref ref="WARN"/>
    </logger>
   
    <logger name="com.zgd" additivity="false" level="DEBUG" >
      <appender-ref ref="app" />
      <appender-ref ref="ERROR" />
      
      <appender-ref ref="CONSOLE" />
    </logger>

   
    <root>
      
      <level value="${log.level}"/>
      
      <appender-ref ref="CONSOLE"/>
      
      
    </root>
</configuration>Controller中使用logback

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class IndexController {
    private final Logger logger = LoggerFactory.getLogger(getClass());

    @GetMapping("/index")
    public Object index() {
      logger.debug("debug");
      logger.info("info");
      logger.warn("warn");
      logger.error("error");
      return "success";
    }
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: springboot中如何集成logback呢?