第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Spring MVC 日志配置

1. 前言

本章節(jié)將和大家一起聊聊在 Spring MVC 項(xiàng)目中如何添加日志系統(tǒng)。通過本課程,你將了解到:

  • 添加 log4j 日志子系統(tǒng)的流程。這個(gè)是本章節(jié)的重點(diǎn);
  • log4j 日志系統(tǒng)的相關(guān)配置。

2. log4j 日志框架

企業(yè)級(jí)的項(xiàng)目都會(huì)標(biāo)配日志子系統(tǒng)。日志系統(tǒng)可以記錄項(xiàng)目運(yùn)行過程的所有信息,通過這些信息可以很方便幫助開發(fā)人員找到項(xiàng)目運(yùn)行過程的問題。

日志系統(tǒng)也可以記載用戶的使用記錄,這些信息可以幫助開發(fā)者分類、歸納用戶的使用入口,更好的維護(hù)系統(tǒng)的安全性。除此之外,日志信息還有更多其它用途。

眾多流行、優(yōu)秀的日志框架中,本課程主推 log4jlog4j 日志系統(tǒng)有兩個(gè)版本,使用時(shí)有很大差異性。基于 Spring 5.X 版本的項(xiàng)目中建議使用 log4j 2 版本。

2.1 添加日志框架

本小節(jié)主要介紹在 Spring MVC 項(xiàng)目中如何集成 log4j 2 日志系統(tǒng)。

  1. 打開項(xiàng)目的 pom.xml 文件,添加 log4j 的依賴包;
<dependency>
   	<groupId>org.apache.logging.log4j</groupId>
   	<artifactId>log4j-core</artifactId>
   	<version>2.10.0</version>
</dependency>
<dependency>
   	<groupId>org.apache.logging.log4j</groupId>
   	<artifactId>log4j-api</artifactId>
   	<version>2.10.0</version>
</dependency>
<dependency>
   	<groupId>org.apache.logging.log4j</groupId>
   	<artifactId>log4j-web</artifactId>
   	<version>2.10.0</version>
</dependency>

Tips: 這里有 3 個(gè)依賴包,log4j-web 是針對(duì)于 WEB 應(yīng)用程序的依賴包。

  1. 新建名為 log4j2.xml 的配置文件;

Tips: log4j2 不再支持 properties 格式的文件,只支持 xml,json 或是 yaml,不指定位置的情況下默認(rèn)在 src/main/resources 下查找。

提供如下最基礎(chǔ)的配置內(nèi)容:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
	<Appenders>
		<Console name="Console" target="SYSTEM_OUT">
			<PatternLayout
				pattern="%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
		</Console>
		<RollingRandomAccessFile name="smlog"
			fileName="sm.log"
			filePattern="$${date:yyyy-MM}/sm-%d{yyyy-MM-dd}-%i.log.gz">
			<PatternLayout
				pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
			<Policies>
				<TimeBasedTriggeringPolicy />
				<SizeBasedTriggeringPolicy size="10 MB" />
			</Policies>
			<DefaultRolloverStrategy max="20" />
		</RollingRandomAccessFile>
	</Appenders>
	<Loggers>
		<Logger name="org.springframework" level="DEBUG" />
		<Root level="info">
			<AppenderRef ref="Console" />
			<AppenderRef ref="smlog" />
		</Root>
	</Loggers>
</Configuration>

log4j2 配置內(nèi)容簡要說明:

  • Appender: 信息輸出位置,可以有多個(gè)輸出口。 SYSTEM_OUT 的目標(biāo)是 Console 。表示把日志內(nèi)容輸出到控制臺(tái)上。Root Logger 的級(jí)別是 info。所有 info 及以上級(jí)別的日志才會(huì)記錄;

Tips: 日志級(jí)別分別有 TRACE、 DEBUG 、NFO 、WARN 、ERROR 、 FATAL 這幾種,日志級(jí)別從左向右依次增加。日志信息的輸出由當(dāng)前日志級(jí)別決定,只有比當(dāng)前級(jí)別高的信息才能輸出。

  • RollingRandomAccessFile: 表示以文件方式記錄。可以設(shè)置日志文件的文件名以及格式,一般會(huì)加上時(shí)間戳;

Tips: 本文側(cè)重于講解在 Spring MVC 項(xiàng)目中如何使用 log4j 日志系統(tǒng)。log4j 其它的配置信息大家可以查閱官方文檔: 。

  • 如果希望日志信息既輸出到控制臺(tái),又能輸出到文件中,務(wù)必使用 AppenderRef 標(biāo)簽引用控制臺(tái)配置名稱和文件配置名稱。
<Root level="info">
	<AppenderRef ref="Console" />
	<AppenderRef ref="smlog" />
</Root>

log4j2 的配置文件開發(fā)者可以根據(jù)需要存放在其它位置,但需要在 web.xml 文件中配置 log4j 提供的監(jiān)聽器。

<context-param>
	<param-name>log4jConfiguration</param-name>
	<param-value>classpath:log4j2.xml</param-value>
</context-param>
<listener>
	<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
</listener>

Tips: 最佳方案是把 log4j 的 log4j2.xml 配置文件放在默認(rèn)位置,避開上面的配置。Servlet2.5 以上,可以不用配置監(jiān)聽器。

  1. 使用測試。

使用很簡單,在你需要使用日志的地方,創(chuàng)建一個(gè)日志對(duì)象。

public class Test {
	static Logger logger = LogManager.getLogger(Test.class);
	public static void main(String[] args) {
          logger.info("info","messgae"); 
	}
}

運(yùn)行上面代碼,除了在控制臺(tái)上輸出信息外,且還會(huì)把內(nèi)容寫入到日志文件中。

圖片描述

日志對(duì)象的 i 常用方法如下:

  • debug():輸出 debug 級(jí)別信息;
  • error():輸出 error 級(jí)別的信息;
  • fatal():輸出 fatal 級(jí)別的信息;
  • info():輸出 info 級(jí)別的信息;
  • trace():輸出 trace 級(jí)別的信息;
  • warn():輸出 warn 級(jí)別的信息。

以上幾個(gè)方法除了語義上的區(qū)別,使用起來沒有本質(zhì)的區(qū)別。通過語義上的差異性,log4j 可以控制信息的輸出級(jí)別。

3. 小結(jié)

本章節(jié)和大家一起聊了聊在 Spring MVC 項(xiàng)目如何使用 log4j 2 日志系統(tǒng)。log4j 是一個(gè)獨(dú)立的日志系統(tǒng)??梢栽谛枰峁┤罩镜捻?xiàng)目中以模塊化的方式輕松使用。
log4j 有很多可配置項(xiàng),大家可以參考官方文檔。對(duì)于本課程的配置而言,已經(jīng)足夠常規(guī)要求。