log4jjava的簡單介紹

本文目錄一覽:

怎樣添加java的log4j添加到java項目中

首先,弄到log4j的jar包,maven工程配置以下依賴就行,或者,從阿里的maven倉庫下載jar包,添加到工程的“build path”log4j log4j 1.2.17

然後,整一個log4j.properties,內容如下,然後把它放在src/main/java目錄(也就是包所在的根目錄)

1、普通java工程或spring工程

這是最常見的java工程類型,寫demo用的多,把log4j.properties放在src/main/java目錄(也就是包所在的根目錄)就行了

 2、spring mvc工程

web工程里用spring mvc構建的比較多了,把log4j.properties放在src/main/resources的conf目錄(web工

程配置文件通常在resources或WEB-INF目錄),編輯web.xml,添加

log4jConfigLocation classpath:/conf/log4j.properties org.springframework.web.util.Log4jConfigListener

3、普通web工程

沒有了spring提供的listener加載log4j.properties,我們要怎麼加載這個文件呢?同樣,把log4j.properties

放在src/main/resources的conf目錄,我們整一個servlet來加載

publicclassLog4jServletextendsHttpServlet { privatestaticfinallongserialVersionUID = 1L; publicvoidinit(ServletConfig config)throwsServletException { String prefix =this.getClass().getClassLoader().getResource(“/”).getPath(); String path = config.getInitParameter(“log4j-path”); PropertyConfigurator.configure(prefix + path); } publicvoiddoGet(HttpServletRequest req, HttpServletResponse res)throwsIOException, ServletException {} publicvoiddoPost(HttpServletRequest req, HttpServletResponse res)throwsIOException, ServletException {} publicvoiddestroy() {} }

然後配置servlet隨着web工程啟動而初始化,編輯web.xml,添加

log4j com.xmyself.log4j.Log4jServlet log4j-path conf/log4j.properties 1

看着是不是和spring mvc的很像,甚至你也想到了,普通java工程沒有指定log4j.properties的路徑,那說明

log4j的jar包一定有一個默認的路徑。另外,建議,log4j的配置放在第一個,因為後續加載其他組件就要開始使用日

log4j的使用,即java該如何使用日誌文件

java使用日誌文件log4j的方法:

1、 新建一個Java工程,導入Log4j包,pom文件中對應的配置代碼如下:

!– log4j support —

dependency

   groupIdlog4j/groupId

   artifactIdlog4j/artifactId

   version1.2.17/version

/dependency

2、resources目錄下創建log4j.properties文件

### 設置###

log4j.rootLogger = debug,stdout,D,E

### 輸出信息到控制抬 ###

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

log4j.appender.stdout.Target = System.out

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

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 輸出DEBUG 級別以上的日誌到=/home/duqi/logs/debug.log ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = /home/duqi/logs/debug.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG

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

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] – [ %p ]  %m%n

### 輸出ERROR 級別以上的日誌到=/home/admin/logs/error.log ###

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File =/home/admin/logs/error.log

log4j.appender.E.Append = true

log4j.appender.E.Threshold = ERROR

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

log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] – [ %p ]  %m%n

3、輸出日誌的例子如下

package com.javadu.log;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class Log4JTest {

   private static final Logger logger = LoggerFactory.getLogger(Log4JTest.class);

   public static void main(String[] args) {

       // 記錄debug級別的信息

       logger.debug(“This is debug message.”);

       // 記錄info級別的信息

       logger.info(“This is info message.”);

       // 記錄error級別的信息

       logger.error(“This is error message.”);

   }

}

4、輸出結果

首先,控制台輸入如下圖所示:

然後,查看/Users/duqi/logs目錄下的debug.log和error.log文件,內容分別如下,可以看出:

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

請問java中,log4j如何使用

把log4j的配置文件log4j.properties放到classes目錄下。log4j.jar放到lib目錄下。程序運行後,會自動裝載log4j.properties。

程序中使用:

// 引入類。

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

// 初始化Log對象.

private Log log = LogFactory.getLog(BaseDAO.class);

在你的方法裡面就可以使用log對象的方法了,比如: log.info(), log.debug(), log.warn(), log.error() 等等。

具體如何輸出和輸出信息級別,都在log4j.properties中配置。你可以到網上找log4j.properties中的內容。你從官網上下載的log4j中應該也有。

log4j在java的web項目中怎麼用的,如何配置等等。。

在web.xml中添加配置:

!– 配置log4j配置文件的路徑,可以是xml或 properties(此參數必須配)–

下面使用了classpath 參數指定log4j.properties文件的位置,這樣log4j的配置文件就不用非要放到src的下面:

context-param

param-namelog4jConfigLocation/param-name

param-valueclasspath:config/log4j/log4j.properties/param-value

/context-param

使用spring的監聽器,當應用啟動時來讀取log4j的配置文件

listener

listener-classorg.springframework.web.util.Log4jConfigListener/listener-class

/listener

用java 代碼實現log4j的日誌輸出功能

寫一個log4j的properties文件,再在web.xml裡面配置一下就ok了,你參考下吧

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

log4j.appender.stdout.Target=System.out

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

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

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=e:/Logs/PB/root.log

log4j.appender.file.MaxFileSize=5000KB

log4j.appender.file.MaxBackupIndex=5

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

log4j.appender.file.layout.ConversionPattern=[%d]-%-5p %t | %m%n

log4j.logger.java.sql = DEBUG,ibatis

log4j.additivity.java.sql=false

log4j.logger.java.sql.Connection = DEBUG

log4j.logger.java.sql.Statement = DEBUG

log4j.logger.java.sql.PreparedStatement = DEBUG

log4j.logger.java.sql.ResultSet = DEBUG

log4j.logger.com.ibatis = DEBUG,ibatis

log4j.additivity.com.ibatis=false

log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG

log4j.logger.com.ibatis.sqlmap.engine.cache.CacheModel=DEBUG

log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientImpl=DEBUG

log4j.logger.com.ibatis.sqlmap.engine.builder.xml.SqlMapParser=DEBUG

log4j.logger.com.ibatis.common.util.StopWatch=DEBUG

log4j.appender.ibatis=org.apache.log4j.RollingFileAppender

log4j.appender.ibatis.File=e:/Logs/PB/ibatis.log

log4j.appender.ibatis.MaxFileSize=5000KB

log4j.appender.ibatis.MaxBackupIndex=5

log4j.appender.ibatis.Threshold=DEBUG

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

log4j.appender.ibatis.layout.ConversionPattern=[%d]%m%n

log4j.rootLogger=DEBUG,stdout,file

log4j.logger.org.springframework=INFO

log4j.logger.org.displaytag=INFO

log4j.logger.freemarker=INFO

log4j.logger.com.opensymphony.xwork2=INFO

log4j.logger.com.pracbiz=DEBUG

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

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

相關推薦

  • Python簡單數學計算

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

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

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

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27
  • Guava Limiter——限流器的簡單易用

    本文將從多個維度對Guava Limiter進行詳細闡述,介紹其定義、使用方法、工作原理和案例應用等方面,並給出完整的代碼示例,希望能夠幫助讀者更好地了解和使用該庫。 一、定義 G…

    編程 2025-04-27
  • 製作一個簡單的管理系統的成本及實現

    想要製作一個簡單的管理系統,需要進行技術選型、開發、測試等過程,那麼這個過程會花費多少錢呢?我們將從多個方面來闡述製作一個簡單的管理系統的成本及實現。 一、技術選型 當我們開始思考…

    編程 2025-04-27
  • 2的32次方-1:一個看似簡單卻又複雜的數字

    對於計算機領域的人來說,2的32次方-1(也就是十進制下的4294967295)這個數字並不陌生。它經常被用來表示IPv4地址或者無符號32位整數的最大值。但實際上,這個數字卻包含…

    編程 2025-04-27

發表回復

登錄後才能評論