Log4j 2 配置文件詳解

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<!-- status : 這個用於設置log4j2自身內部的信息輸出,能夠不設置,當設置成trace時,會看到log4j2內部各類詳細輸出 monitorInterval
: Log4j可以自動檢測修改配置文件和從新配置自己, 設置間隔秒數。如:monitorInterval="600" -->
<Configuration status="WARN">
	<Properties>
		<!-- 日誌路徑  web.xml中需指定servlet3.0 ${web:rootDir}才能夠獲取到web項目的路徑-->
		<Property name="LOG_HOME">${web:rootDir}/logs</Property>
		<!-- 日誌名字 -->
		<Property name="LOG_NAME">NettyTCPServerExample</Property>
	</Properties>
	<Appenders>
		<!-- 將日誌信息從控制檯輸出 -->
		<Console name="Console" target="SYSTEM_OUT">
			<!-- 控制檯只輸出level及以上級別的信息(onMatch-匹配ACCEPT接受),其餘的直接拒絕(onMismatch-不匹配DENY拒絕) -->
			<!-- <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/> -->
			<!-- 輸出日誌的格式 -->
			<PatternLayout
			pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%logger{36}.%M,%L] - %msg%n" />
		</Console>
		<!-- 將日誌信息寫入日誌文件 配置了RollingRandomAccessFile就不用配置此處了-待測試 -->
		<!-- <File name="File" filename="${LOG_HOME}/${LOG_NAME}.log" append="true">
		<PatternLayout pattern="%d %p %C{1.} [%t] %m%n" /> </File> -->
		<!-- 分割日誌 -->
		<RollingRandomAccessFile name="RollingFile"
		fileName="${LOG_HOME}/${LOG_NAME}" filePattern="${LOG_HOME}/${LOG_NAME}.%d{yyyy-MM-dd}.log">
			<PatternLayout
			pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%logger{36}.%M,%L] - %msg%n" />
			<Policies>
				<!-- 按天分割日誌,interval以小時設置, modulate=true,則封存時間將以0點爲邊界進行偏移計算 -->
				<TimeBasedTriggeringPolicy modulate="true"
				interval="24" />
				<!-- 按日誌大小分割日誌,能夠與按時間分割共用,知足其中一個條件即分割 -->
				<!-- <SizeBasedTriggeringPolicy size="200 MB" /> -->
			</Policies>
			<DefaultRolloverStrategy />
		</RollingRandomAccessFile>
	</Appenders>
	<Loggers>
		<!-- 避免日誌重複寫入,將框架相關的包單獨設置 additivity="false" 不設置會重複打印日誌 -->
		<logger name="org.springframework.core" level="info"
		additivity="false"></logger>
		<logger name="org.springframework.beans" level="info"
		additivity="false"></logger>
		<logger name="org.springframework.context" level="info"
		additivity="false"></logger>
		<logger name="org.springframework.web" level="info" additivity="false"></logger>
		<logger name="org.springframework.webmvc" level="info" additivity="false"></logger>
		<logger name="org.springframework.test" level="info" additivity="false"></logger>
		<logger name="org.springframework.amqp" level="info" additivity="false"></logger>
		<!-- Root level 是設置全局的信息顯示級別,這裏設置爲info表示:info及以上的信息將被輸出 信息的級別大小爲: debug
		< info < warn < error < fatal -->
		<Root level="info">
			<!-- 僅有上述的Appenders配置還不夠,這裏還不能少,少了就不會在控制檯輸出 -->
			<AppenderRef ref="Console" />
			<!-- 僅有上述的Appenders配置還不夠,這裏還不能少,少了就不會寫入文件,但會建立文件 -->
			<!-- <AppenderRef ref="File" /> -->
			<AppenderRef ref="RollingFile" />
		</Root>
		<!-- 能夠專門爲某個類指定信息級別,例如爲main包下的Main類指定信息級別爲trace -->
		<!-- <Logger name="main.Main" level="trace" /> -->
	</Loggers>
</Configuration>
相關文章
相關標籤/搜索