log4j列印錯誤異常的詳細堆疊資訊

2021-09-08 05:30:07 字數 3674 閱讀 3417

使用logger.error方法時只能列印出異常型別,無法列印出詳細的堆疊資訊,使得定位問題變得困難和不方便。

logger類下有多個不同的error方法,根據傳入引數的個數及型別的不同,自動選擇不同的過載方法。

當error(object obj)只傳入乙個引數時會將異常物件作為object使用,並最終當做string列印出來,當使用兩個引數error(string message, throwable t),且第二個引數為throwable時,才會將完整的異常堆疊列印出來。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

importorg.apache.logging.log4j.logmanager;

importorg.apache.logging.log4j.logger;

/**

* @author: leechao

* @date: 2018/7/25

* @describe:

* @modified by:

*/

publicclasstestlogerror ;

intoutboundint = array[5];

}catch(exception e) : ", e);

// 嘗試使用分隔符,第二個引數為object,會發現分隔符起作用了,根據第二個引數的不同型別,呼叫不同的過載方法

logger.error("第二個引數為object,使用分隔符列印 {} ",123);

}

}

}

資訊輸出:

根據方法過載特性,當只輸入乙個引數時,此物件會被當做object進行列印輸出,如果是exception e的話,這裡直接就tostring()。 1

2

3

4

5

6

/**

* logs a message object with the level.

*

* @param message the message object to log.

*/

voiderror(object message);

根據方法過載特性,當第二個引數為throwable時,會列印出異常資訊,並且包含異常堆疊資訊。 1

2

3

4

5

6

7

8

/**

* logs a message at the level including the stack trace of the

*tpassed as parameter.

*

* @param message the message object to log.

* @param t the exception to log, including its stack trace.

*/

voiderror(string message, throwable t);

根據方法過載特性,當第二個引數為object時,會根據佔位符進行替換並列印出錯誤日誌。 1

2

3

4

5

6

7

/**

* logs a message with parameters at error level.

*

* @param message the message to log; the format depends on the message factory.

* @param p0 parameter to the message.

*/

voiderror(string message, object p0);

Log4j記錄詳細異常資訊

片斷,其中log為log4j物件,ex為異常物件 方法1 利用異常類提供的printstacktrace printwriter s 函式。stringwriter sw new stringwriter printwriter pw new printwriter sw ex.printstack...

log4j列印異常資訊,未列印堆疊

使用logger.error方法時只能列印出異常型別,無法列印出詳細的堆疊資訊,使得定位問題變得困難和不方便。logger類下有多個不同的error方法,根據傳入引數的個數及型別的不同,自動選擇不同的過載方法。當error object obj 只傳入乙個引數時會將異常物件作為object使用,並最...

log4j詳細配置

conversionpattern引數的格式含義 格式名 含義 c 輸出日誌資訊所屬的類的全名 d 輸出日誌時間點的日期或時間,預設格式為iso8601,也可以在其後指定格式,比如 d,輸出類似 2002 10 18 22 10 28 f 輸出日誌資訊所屬的類的類名 l 輸出日誌事件的發生位置,即輸...