SpringBoot+Logback 日志配置实例

    科技2024-03-14  90

    可以使用  <springProperty/>读取配置文件中的配置项,参考:https://my.oschina.net/yejw/blog/1551697

    总共可以使用两类方式:1、yml中 引入logback配置文件;2、yml中配置,使用默认属性,目前之摸索出下面列出的这些

    application.yml

    server: port: 80 # mysql spring: application: name: saic-tsp-account cloud: nacos: discovery: server-addr: 127.0.0.1:8848 config: server-addr: 127.0.0.1:8848 log: path: /Users/zhou/logs/saic file-name: ${spring.application.name} logging: # file: # path: /Users/zhou/logs/saic # max-history: 7 # name: ${spring.application.name}.log # clean-history-on-start: false # max-size: 10MB # level: # root: info # #mybatis sql log # com.baomidou.example.mapper: debug config: classpath:logback-spring.xml # pattern: # file: ${spring.application.name}.log.%d{yyyy-MM-dd}.log # console: %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n # rolling-file-name: ${log.path}/${spring.application.name}/log.%d{yyyy-MM-dd}.%i.log.gz

    logback-spring.xml

    <?xml version="1.0" encoding="UTF-8"?> <!-- 说明: 1. 文件的命名和加载顺序有关 logback.xml早于application.yml加载,logback-spring.xml晚于application.yml加载 如果logback配置需要使用application.yml中的属性,需要命名为logback-spring.xml 2. logback使用application.yml中的属性 使用springProperty才可使用application.yml中的值 可以设置默认值 --> <!--<configuration scan="true" scanPeriod="60 seconds">--> <configuration debug="false" > <!--设置存储路径变量--> <!-- <property name="LOG_HOME" value="/Users/zhou/logs/saic"/>--> <!-- log base path --> <springProperty scope="context" name="LOG_HOME" source="log.path" defaultValue="logs"/> <springProperty scope="context" name="LOG_NAME" source="log.file-name" defaultValue="saic"/> <!-- 文件切割大小 --> <property name="maxFileSize" value="10MB" /> <!-- 文档保留天数 --> <property name="maxHistory" value="30" /> <!-- 文档保留总大小 --> <property name="totalSizeCap" value="1GB" /> <!--控制台输出appender--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <!--设置输出格式--> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <!--设置编码--> <charset>UTF-8</charset> </encoder> </appender> <!--文件输出,时间窗口滚动--> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--日志名,指定最新的文件名,其他文件名使用FileNamePattern --> <File>${LOG_HOME}/${LOG_NAME}.log</File> <!--文件滚动模式--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名,可设置文件类型为gz,开启文件压缩--> <FileNamePattern>${LOG_HOME}/${LOG_NAME}/log.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern> <!--日志文件保留天数--> <maxHistory>${maxHistory}</maxHistory> <totalSizeCap>${totalSizeCap}</totalSizeCap> <!--按大小分割同一天的--> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>${maxFileSize}</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <!--输出格式--> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <!--设置编码--> <charset>UTF-8</charset> </encoder> <!-- &lt;!&ndash;日志文件最大的大小&ndash;&gt;--> <!-- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">--> <!-- <MaxFileSize>10MB</MaxFileSize>--> <!-- </triggeringPolicy>--> </appender> <logger name="com.apache.ibatis" level="DEBUG"/> <logger name="java.sql.Connection" level="DEBUG"/> <logger name="java.sql.Statement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/> <logger name="com.baomidou.example.mapper" level="DEBUG"/> <!--指定基础的日志输出级别--> <root level="INFO"> <!--appender将会添加到这个loger--> <appender-ref ref="console"/> <appender-ref ref="file"/> </root> </configuration>

     

    Processed: 0.017, SQL: 8