Logback配置

幾個注意點
數據庫

  1. Logback支持的日誌級別.服務器

    TRACE < DEBUG < INFO < WARN < ERRORapp

  2. 若是記錄請求級別爲p,其 logger的有效級別爲q,只有則當p>=q時,該請求才會被執行.ide

  3. 用同一名字調用LoggerFactory.getLogger方法所獲得的永遠都是同一個logger對象的引用.spa

  4. Logback不限制logger名,目前最好的策略是以logger所在類的名字做爲logger名.debug

  5. 在logback裏,一個輸出目的地稱爲一個appender。目前支持控制檯、文件、遠程套接字服務器、MySQL、PostreSQL、Oracle和其餘數據庫、JMS和遠程UNIX Syslog守護進程等。日誌

  6. 一個logger能夠被關聯多個appender。對於logger的每一個啓用了的記錄請求,都將被髮送到logger裏的所有appender及更高等級的appender。換句話說, appender也繼承了logger的層次等級。例如,若是根logger有一個控制檯appender, 那麼全部啓用了的請求都至少會被打印到控制檯。若是logger L有額外的文件appender,那麼,L和L 後代的全部啓用了的請求都將同時打印到控制檯和文件。設置logger的additivity爲false能夠取消這種默認的appender累積行爲code


不一樣日誌級別不一樣輸出到不一樣文件的實現
xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%date [%thread] %-5level %logger{36} - %msg%n
			</pattern>
		</encoder>
	</appender>

	<appender name="FILE" class="ch.qos.logback.core.FileAppender">
		<file>app.log</file>
		<encoder>
			<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n
			</pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>DENY</onMatch>
			<onMismatch>ACCEPT</onMismatch>
		</filter>
	</appender>

	<appender name="FILE_ERROR" class="ch.qos.logback.core.FileAppender">
		<file>app_error.log</file>
		<encoder>
			<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n
			</pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
	</appender>

	<root level="debug">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
		<appender-ref ref="FILE_ERROR" />
	</root>

</configuration>


按時間繞接並壓縮的實現對象

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%date [%thread] %-5level %logger{36} - %msg%n
			</pattern>
		</encoder>
	</appender>

	<appender name="FILE"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>app.log</file>
		<encoder>
			<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n
			</pattern>
		</encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>app.%d{yyyy-MM-dd_HH-mm}.log.gz
			</fileNamePattern>
			<maxHistory>10</maxHistory>
		</rollingPolicy>
	</appender>


	<root level="debug">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
	</root>

</configuration>


按時間和大小繞接的實現

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%date [%thread] %-5level %logger{36} - %msg%n
			</pattern>
		</encoder>
	</appender>

	<appender name="FILE"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>app.log</file>
		<encoder>
			<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n
			</pattern>
		</encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!-- daily rollover -->
			<fileNamePattern>app.%d{yyyy-MM-dd}.%i.log.gz
			</fileNamePattern>
			<maxHistory>10</maxHistory>
			<timeBasedFileNamingAndTriggeringPolicy
				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>20MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
	</appender>


	<root level="debug">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
	</root>

</configuration>


按大小繞接的實現

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%date [%thread] %-5level %logger{36} - %msg%n
			</pattern>
		</encoder>
	</appender>

	<appender name="FILE"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>app.log</file>
		<encoder>
			<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n
			</pattern>
		</encoder>
		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<fileNamePattern>app.%i.log.gz</fileNamePattern>
			<minIndex>1</minIndex>
			<maxIndex>10</maxIndex>
		</rollingPolicy>
		<triggeringPolicy
			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<maxFileSize>20MB</maxFileSize>
		</triggeringPolicy>
	</appender>


	<root level="debug">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
	</root>

</configuration>
相關文章
相關標籤/搜索