SpringBoot通過yml和xml檔案配置日誌輸出

gaoyiyang發表於2019-04-01

SpringBoot中預設使用Logback進行日誌輸出,可以同時使用通過logback的配置檔案logback.xml或是SpringBoot框架的配置檔案application.yml進行配置。

通過logback.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
	<!--定義日誌檔案的儲存地址 勿在 LogBack 的配置中使用相對路徑-->
	<property name="LOG_HOME" value="/test/log" />
	<!-- 控制檯輸出 -->
	<appender name="STDOUT" 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>
		</encoder>
	</appender>
	<!-- 按照每天生成日誌檔案 -->
	<appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!--日誌檔案輸出的檔名-->
			<FileNamePattern>${LOG_HOME}/my.log.%d{yyyy-MM-dd}.log</FileNamePattern>
			<!--日誌檔案保留天數-->
			<MaxHistory>30</MaxHistory>
		</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>
		</encoder>
		<!--日誌檔案最大的大小-->
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>10MB</MaxFileSize>
		</triggeringPolicy>
	</appender>

	<!-- 日誌輸出級別 -->
	<root level="INFO">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
	</root>
</configuration>
複製程式碼

通過application.yml配置

此處沒有找到如何配置成與xml相同的能將日誌檔案輸出為${LOG_HOME}/my.log.%d{yyyy-MM-dd}.log格式的方法,希望知道的大佬告知。

logging:
  pattern:
    file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"
    console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"
  path: "./logs/"
  file: "./logs/my.log"
  file.max-size: 10MB
  level:
    root: INFO
複製程式碼

參考

SpringBoot Logback日誌配置

相關文章