java使用log4j記錄日誌的簡單介紹

本文目錄一覽:

如何使用log4j記錄日誌

第一步:在工程中加入log4j所使用的jar文件

1:項目 �0�2

屬性 :彈出項目的屬性窗口

2:Java構建路徑?庫?添加外部JAR:彈出選擇JAR的窗口

3:通過選擇JAR的窗口,找到log4j-1.2.x.jar,並確認

4:回到項目的屬性窗口,點擊確定

第二步:創建log4j.properties文件

1:選擇欲使用log4j的項目?右鍵點擊src ?新建?其他 :彈出選擇嚮導窗口

2:在選擇嚮導窗口中,選擇常規? 文件? 下一步:彈出新建文件的窗口

3:在新建文件窗口中,輸入文件名log4j.properties ? 完成:創建工作結束

第三步:使用log4j記錄日誌信息

import org.apache.log4j.Logger;

public class Log4j {�0�2�0�2�0�2public static void main(String[] args) {�0�2�0�2Logger logger = Logger.getLogger(AccpTeacherLog4j.class.getName());//獲取日誌記錄器,這個記錄器將負責控制日誌信息�0�2�0�2try {�0�2�0�2logger.debug(“設置教員的編號。”);//使用Logger對象的debug、info方法輸出日誌信息�0�2�0�2} catch (IllegalArgumentExceptionex) {�0�2�0�2logger.info(ex.getMessage());//使用Logger對象的debug、info方法輸出日誌信息�0�2�0�2}�0�2�0�2�0�2}}第四步:編寫log4j.properties文件,配置日誌信息

### 把日誌信息輸出到控制台 ###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender//日誌信息將寫到控制台

log4j.appender.stdout.Target=System.out//信息打印到System.out上�0�2

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}�0�2

%m%n//指定輸出格式:顯示日期和log信息�0�2

### 把日誌信息輸出到文件:accp.log ###

log4j.appender.file=org.apache.log4j.FileAppender//日誌信息將寫到文件中�0�2

log4j.appender.file.File=accp.log//指定日誌輸出的文件名�0�2

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}�0�2%l�0�2%m%n//指定輸出格式:顯示日期,日誌發生位置和日誌信息

### 設置優先級別、以及輸出源 ###

log4j.rootLogger=debug, stdout, file//設置優先級別為debug、

日誌被輸出到多個輸出源

註:優先級從高到低分別是ERROR、WARN、INFO、DEBUG

在此處,如果優先級別設為info,那麼使用debug方法打印的日誌信息將不被輸出

java中如何使用log4j將記錄的操作日誌信息

主要是通過配置文件

1.1 Log4j 支持兩種配置文件格式,一種是 XML 格式的文件,一種是 Java 特性文件    lg4j.properties (鍵 = 值)。

Logger 負責處理日誌記錄的大部分操作。 

其語法為: 

log4j.rootLogger = [ level ] , appenderName, appenderName, …

2.1 level 是日誌記錄的優先級,分為 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL

或者自定義的級別。

2.2Log4j 建議只使用四個級別,優先級從高到低分別是 ERROR 、 WARN 、 INFO 、 DEBUG

2.3通過在這裡定義的級別,您可以控制到應用程序中相應級別的日誌信息的開關。比如在這裡定義了

INFO 級別,只有等於及高於這個級別的才進行處理,則應用程序中所有 DEBUG 級別的日誌信息將不被打印出來。

2.4 ALL: 打印所有的日誌,

OFF :關閉所有的日誌輸出。 appenderName 就是指定日誌信息輸出到哪個地方。可同時指定多個輸出目的地。

配置日誌信息輸出目的地 Appender 負責控制日誌記錄操作的輸出。

3.1log4j.appender.appenderName = fully.qualified.name.of.appender.class 

3.2log4j.appender.appenderName.option1 = value1 

3.3log4j.appender.appenderName.optionN = valueN

Log4j 提供的 appender

4.1org.apache.log4j.ConsoleAppender (控制台), 

4.2org.apache.log4j.FileAppender (文件), 

4.3org.apache.log4j.DailyRollingFileAppender (每天產生一個日誌文件), 

4.4org.apache.log4j.RollingFileAppender

(文件大小到達指定尺寸的時候產生一個新的文件),可通過 log4j.appender.R.MaxFileSize=100KB

設置文件大小,還可通過 4.5log4j.appender.R.MaxBackupIndex=1 設置為保存一個備份文件。 

4.6org.apache.log4j.WriterAppender (將日誌信息以流格式發送到任意指定的地方)

5.Layout

5.1org.apache.log4j.HTMLLayout (以 HTML 表格形式布局),

5.2org.apache.log4j.PatternLayout (可以靈活地指定布局模式),

5.3org.apache.log4j.SimpleLayout (包含日誌信息的級別和信息字符串),

5.4org.apache.log4j.TTCCLayout (包含日誌產生的時間、線程、類別等等信息)

6.格式化日誌信息

Log4J 採用類似 C 語言中的 printf 函數的打印格式格式化日誌信息,打印參數如下:

6.1%m 輸出代碼中指定的消息

6.2%p 輸出優先級,即 DEBUG , INFO , WARN , ERROR , FATAL

6.3%r 輸出自應用啟動到輸出該 log 信息耗費的毫秒數

6.4%c 輸出所屬的類目,通常就是所在類的全名

6.5%t 輸出產生該日誌事件的線程名

6.6%n 輸出一個回車換行符, Windows 平台為 “rn” , Unix 平台為 “n”

6.7%d 輸出日誌時間點的日期或時間,默認格式為 ISO8601 ,也可以在其後指定格式,比如: %d{yyyy MMM dd HH:mm:ss,SSS} ,輸出類似: 2002 年 10 月 18 日 22 : 10 : 28 , 921

6.8%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。

7.  log4j.propertie 示例文件:

log4j.rootCategory=INFO, stdout,file

7.1 定義名為 stdout 的輸出端的類型

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

7.2定義名為 file 的輸出端的類型為每天產生一個日誌文件。

log4j.appender.file =org.apache.log4j.DailyRollingFileAppender

log4j.appender.file.File=log.txt

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d-[TS] %p %t %c – %m%n

7.3指定 com.neusoft 包下的所有類的等級為 DEBUG 。可以把 com.neusoft 改為自己項目所用的包名。

log4j.logger.com.neusoft=DEBUG

7.4如果項目中沒有配置 EHCache ,則配置以下兩句為 ERROR 。

log4j.logger.com.opensymphony.oscache=ERROR

log4j.logger.net.sf.navigator=ERROR

8struts 配置

log4j.logger.org.apache.commons=ERROR

log4j.logger.org.apache.struts=WARN

8.1 displaytag 配置

log4j.logger.org.displaytag=ERROR

8.2  spring 配置

log4j.logger.org.springframework=DEBUG

8.3  ibatis 配置

log4j.logger.com.ibatis.db=WARN

8.4   hibernate 配置

log4j.logger.org.hibernate=DEBUG

log4j.logger.org.apache.velocity=FATAL

log4j.logger.com.canoo.webtest=WARN

如何使用log4j.RollingFileAppender記錄日誌

1 . 配置文件:log4j.properties

[java] view plain copy

#設置rootAppender的顯示級別為DEBUG 和 它的child Appender為rollfile

log4j.rootLogger = DEBUG , rollfile

#設置rollfile輸出媒介為RollingFileAppender

log4j.appender.rollfile = org.apache.log4j.RollingFileAppender

#設置輸出文件的路徑

log4j.appender.rollfile.Flle = D:/my.log

#true表示將輸出的內容附加在原來的文件,而不是覆蓋原來的文件。

log4j.appender.Append = true

#設置日誌文件的最大數量

log4j.appender.rollfile.MaxBackupIndex=3

#設置每個日誌文件的最大容量

log4j.appender.MaxFileSize=5MB

2. 將該配置文件放在應用程序的/WEB-INF/classes目錄中,由Web容器自動調用。

3. 在程序中使用Logger對象輸出日誌:

Logger logger = Logger.getLogger(HelloDao.class);

logger.debug(“調試日誌信息”);

logger.info(“一般的日誌信息”);

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/236223.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 11:59
下一篇 2024-12-12 11:59

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論