springboot日志配置

首页

依赖

springboot项目中默认添加了logback等的依赖,所以不需要单独添加

使用

项目使用log的话,可以添加lombok的依赖

        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <version>RELEASEversion>
            <scope>compilescope>
        dependency>

依赖添加后,则可以在项目中使用log进行日志记录

@Component
@Slf4j
public class CallService {

    public String callTest() {
        log.info("callTest");
        return "success";
    }
}

在类上添加@Slf4j注解(该注解由lombok依赖提供)

配置

可以单独添加日志的配置文件用于提供不同的日志输出,配置文件添加分为两步

  • 在resources目录下添加配置文件如logback-boot.xml
  • 在application.yml中引入配置文件
logging:
  config: classpath:logback-boot.xml

配置文件解释

目录结构

<configuration>
	<appender name="appender1">appender>
	<appender name="appender2">appender>
	<root level="info">
		<appender-ref ref="appender1"/>
	root>
	<logger name="cn.wfc.service" level="DEBUG">
        <appender-ref ref="syslog" />
    logger>
configuration>
  • 根目录:configuration标签
  • appender标签:用于定义日志的输出格式,输出目录等
  • root标签:用于定义控制台输出,在appender中定义一个控制台输出,root里面引入。
  • logger标签:用于定义其他日志输出,在appender中定义一个滚动日志输出,在appender中引入。

appender标签

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d %p (%file:%line\)- %m%npattern>
            
            <charset>UTF-8charset>
        encoder>
    appender>
    <appender name="syslog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>log/sys.logFile>
        
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            
            
            <fileNamePattern>log/sys.%d.%i.logfileNamePattern>
            
            <maxHistory>30maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                
                <maxFileSize>1KBmaxFileSize>
            timeBasedFileNamingAndTriggeringPolicy>
        rollingPolicy>
        <encoder>
            
            <pattern>
                %d %p (%file:%line\)- %m%n
            pattern>
            
            <charset>UTF-8charset> 
        encoder>
    appender>
  • name属性:定义一个appender的名称,用于root标签或者logger标签中进行引入
  • class属性:引入日志包中的类,有ConsoleAppender,RollingFileAppender,FileAppender,OutputStreamAppender等内容,ConsoleAppender用于控制台输出,fileAppender用于文件输出,RollingFileAppender用于滚动日志输出(可以滚动生成日志文件)
  • encoder标签:用于定义编码格式和日志输出格式,其中%m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】%line行号信息等
  • File标签:当使用FileAppender的时候,添加此标签,用于定义日志文件的名称
  • rollingPolicy标签:当使用RollingFileAppender标签时,可以定义滚动策略。其中的class属性里面定义了滚动属性的类,有FixedWindowRollingPolicy,SizeAndTimeBasedRollingPolicy(按照日期和大小滚动),TimeBasedRollingPolicy(按照日期滚动)
  • fileNamePattern标签:定义日志滚动时的名称
  • maxHistory标签:定义日志保存的最大时间

完整例子

<configuration>
    
    
    
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d %p (%file:%line\)- %m%npattern>
            
            <charset>UTF-8charset>
        encoder>
    appender>
    
    
    
    <appender name="syslog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>log/sys.logFile>
        
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            
            
            <fileNamePattern>log/sys.%d.%i.logfileNamePattern>
            
            <maxHistory>30maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                
                <maxFileSize>1KBmaxFileSize>
            timeBasedFileNamingAndTriggeringPolicy>
        rollingPolicy>
        <encoder>
            
            <pattern>
                %d %p (%file:%line\)- %m%n
            pattern>
            
            <charset>UTF-8charset> 
        encoder>
    appender>

    <appender name="callLog"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>log/call.logFile>
        
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            
            
            <fileNamePattern>log/call.%d.%i.logfileNamePattern>
            
            <maxHistory>30maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                
                <maxFileSize>1KBmaxFileSize>
            timeBasedFileNamingAndTriggeringPolicy>
        rollingPolicy>
        <encoder>
            
            <pattern>
                %d %p (%file:%line\)- %m%n
            pattern>
            
            <charset>UTF-8charset> 
        encoder>
    appender>

    
    <root level="info">
        <appender-ref ref="STDOUT" />
    root>
    
    
    
    <logger name="com.cqgjj.fundnetface.service" level="DEBUG">
        <appender-ref ref="syslog" />
    logger>
    <logger name="com.cqgjj.fundnetface.call" level="INFO">
        <appender-ref ref="callLog" />
    logger>
configuration>

你可能感兴趣的:(spring,boot,java,spring)