常用logback.xml配置詳解


選擇logback的理由

logbacklog4j的簡單對比一下:
1.首先,對於同樣的代碼路徑,logback使用起來更快。
2.logback原生實現了log4j的api,而log4j中間還需要一個轉換層。
3.有更豐富的文檔,支持xml的和group的配置。
4.對配置文件的在項目啟動中,可以熱加載。
5.可以自動對日志進行歸檔,可以對日志進行歸檔,可以自動壓縮日志成為歸檔文件。
6.支持更多的過濾器和參數化輸出。

操作

1.引入依賴xml

		<!-- logback -->
				    <dependency>
				      <groupId>ch.qos.logback</groupId>
				      <artifactId>logback-core</artifactId>
				      <version>1.1.8</version>
				    </dependency>
				    <dependency>
				      <groupId>ch.qos.logback</groupId>
				      <artifactId>logback-classic</artifactId>
				      <version>1.1.8</version>
				    </dependency>
				    <dependency>
				      <groupId>org.slf4j</groupId>
				      <artifactId>slf4j-api</artifactId>
				      <version>1.7.22</version>
				    </dependency>

2.創建logback.xml

			<?xml version="1.0" encoding="UTF-8"?>
			<configuration scan="true" scanPeriod="60 seconds">
			
			    <!--日志輸入到控制台-->
			    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
			        <encoder>
			            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
			        </encoder>
			    </appender>
			
			    <!--<appender name="permission" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
			    <!--<file>${catalina.home}/logs/permission.log</file>-->
			    <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
			    <!--<FileNamePattern>${catalina.home}/logs/permission.%d{yyyy-MM-dd}.log.gz</FileNamePattern>-->
			    <!--</rollingPolicy>-->
			    <!--<layout class="ch.qos.logback.classic.PatternLayout">-->
			    <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>-->
			    <!--</layout>-->
			    <!--</appender>-->
			    <!---->
			    <!--<logger name="xxx" level="INFO">-->
			    <!--<appender-ref ref="permission"/>-->
			    <!--</logger>-->
			
			    <!-- TRACE < DEBUG < INFO < WARN < ERROR -->
			    <root level="INFO">
			        <appender-ref ref="STDOUT" />
			    </root>
			
			</configuration>

注:
configuration里面定義參數:scan、scanPeriod等
1.scan="true" 配置文件發生改變時會重新加載。
2.scanPeriod設置時間間隔,當為scan="true"時才會生效 。
例如:scanPeriod="60 seconds"

3.appender:日志輸出形式,可以定義多個 。
STDOURT :標准化輸出 class="ch.qos.logback.core.ConsoleAppender" :控制台輸出
標准日志格式輸出:

		 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		        <encoder>
		            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
		        </encoder>
		    </appender>

解釋:
%d{yyyy-MM-dd HH:mm:ss.SSS}:時間
[%thread]:進程
%-5level:級別從做顯示5個寬度
%logger:日志名稱
%msg%:具體的msg

自定義名字和路徑記錄日志:

		 <appender name="permission" class="ch.qos.logback.core.rolling.RollingFileAppender">
		    <file>${catalina.home}/logs/permission.log</file>
		    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
		    <FileNamePattern>${catalina.home}/logs/permission.%d{yyyy-MM-dd}.log.gz</FileNamePattern>
		    </rollingPolicy>
		    <layout class="ch.qos.logback.classic.PatternLayout">
		    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
		    </layout>
		    </appender>

解釋:

  1. <file>${catalina.home}/logs/permission.log</file>代表路徑在Catalina.home的文件夾下面的logs文件夾下面打印出日志permission.log的日志。
    2.其他的與上面相似

4.logger:日志,可以是類名,也可以是其他、名稱,最后返回appender輸出。
5.root:只能有一個,日志的級別:從小到大的排序:TRACE < DEBUG < INFO < WARN < ERROR

		<root level="INFO">
		        <appender-ref ref="STDOUT" />
		    </root>

與appender聯系起來

這是我在項目中碰見的,所以就當做個筆記,如果有用,大家可以看看,沒有用就算了吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM