正在把日誌轉換成Log4j2

    2017年5月6日,近來又發現一篇關於log4j2的使用,很是詳細Log4j2 簡明教程  html

 

  去年轉了一篇關於log4j2的使用,那時只是簡單的轉文章,並無使用。如今在整理以往的資料,打算所有使用log4j2,如下是過程。程序員

一、pom.xml添加apache

 

<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.5</version>
		</dependency>

 

 

二、log4j2配置文件,在resources中添加Log4j2.xml文件,內容以下,詳細可參考Log4j2使用app

 

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
日誌級別
trace: 是追蹤,就是程序推動如下,你就能夠寫個trace輸出,因此trace應該會特別多,不過不要緊,咱們能夠設置最低日誌級別不讓他輸出。
debug: 調試麼,我通常就只用這個做爲最低級別,trace壓根不用。是在沒辦法就用eclipse或者idea的debug功能就行了麼。
info: 輸出一下你感興趣的或者重要的信息,這個用的最多了。
warn: 有些信息不是錯誤信息,可是也要給程序員的一些提示,相似於eclipse中代碼的驗證不是有error 和warn(不算錯誤可是也請注意,好比如下depressed的方法)。
error: 錯誤信息。用的也比較多。
fatal: 級別比較高了。重大錯誤,這種級別你能夠直接中止程序了,是不該該出現的錯誤麼!不用那麼緊張,其實就是一個程度的問題。
 -->
<Configuration status="OFF">
	<!-- 定義日誌存放目錄 -->
	<properties>
		<property name="logPath">logs</property>
	</properties>
	<!--先定義全部的appender(輸出器) -->
	<Appenders>
		<!--輸出到控制檯 -->
		<Console name="ConsoleLog" target="SYSTEM_OUT">
			<!--只輸出level及以上級別的信息(onMatch),其餘的直接拒絕(onMismatch) -->
			<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
			<!--輸出日誌的格式 -->
			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36}:%L - %msg%n" />
                        <!-- <PatternLayout pattern="%-d [%t] %-5p %c{1}:%L - %m%n" /> -->
		</Console>
		<!--輸出到文件 -->
		<File name="FileLog" fileName="${logPath}/error.log">
			<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
			<PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
		</File>
		<!--輸出到循環日誌,每次大小超過size,則這size大小的日誌會自動存入按年份-月份創建的文件夾下面並進行壓縮,做爲存檔 -->
		<RollingFile name="RollingFileLog" fileName="${logPath}/app.log" filePattern="${logPath}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
			<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
			<PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
			<SizeBasedTriggeringPolicy size="50MB" />
		</RollingFile>
	</Appenders>
	<!--而後定義logger,只有定義了logger並引入的appender,appender纔會生效 -->
	<Loggers>
		<!--創建一個默認的root的logger,記錄大於level高於TRACE的信息,若是這裏的level高於Appenders中的,則Appenders中也是以此等級爲起點,好比,這裏level="fatal",則Appenders中只出現fatal信息 -->
		<Root level="TRACE">
			<!-- 輸出器,可選上面定義的任何項組合,或全選,作到可隨意定製 -->
			<AppenderRef ref="ConsoleLog" />
			<!-- <AppenderRef ref="FileLog" /> -->
			<!-- <AppenderRef ref="RollingFileLog" /> -->
		</Root>
	</Loggers>
</Configuration>

    其中,在調試中能夠只使用Console,信息較多的話開啓File,正常使用過程只用RollingFileeclipse

 

 

三、在須要使用的類中添加ide

 

 

private static Logger logger = LogManager.getLogger(LogTest.class);

 

 

四、而後就可使用了,好比idea

 

 

public boolean hello() {
		logger.entry(); // trace級別的信息,單獨列出來是但願你在某個方法或者程序邏輯開始的時候調用,和logger.trace("entry")基本一個意思
		logger.trace("我是trace信息");
		logger.debug("我是debug信息");
		logger.info("我是info信息"); // info級別的信息
		logger.warn("我是warn信息");
		logger.error("我是error信息"); // error級別的信息,參數就是你輸出的信息
		logger.fatal("我是fatal信息");
		logger.log(Level.DEBUG, "我是Level.DEBUG信息"); // 這個就是制定Level類型的調用:誰閒着沒事調用這個,也不必定哦!
		logger.exit(); // 和entry()對應的結束方法,和logger.trace("exit");一個意思
		return false;
	}
相關文章
相關標籤/搜索