導航:首頁 > 編程語言 > 用代碼配置log4j

用代碼配置log4j

發布時間:2023-03-12 00:30:42

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

  1. 主要是通過配置文件

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

  2. 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 就是指定日誌信息輸出到哪個地方。可同時指定多個輸出目的地。

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

    3.1log4j.appender.appenderName = fully.qualified.name.of.appender.class
    3.2log4j.appender.appenderName.option1 = value1
    3.3log4j.appender.appenderName.optionN = valueN

  4. 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在java的web項目中怎麼用的,如何配置等等。。

在web.xml中添加配置:
<!-- 配置log4j配置文件的路徑,可以是xml或 properties(此參數必須配)-->
下面使用了內classpath 參數指定log4j.properties文件的位置容,這樣log4j的配置文件就不用非要放到src的下面:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:config/log4j/log4j.properties</param-value>
</context-param>
使用spring的監聽器,當應用啟動時來讀取log4j的配置文件
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

㈢ springmvc怎麼配置log4j2

增加pom配置,讓maven載入log4j包
<!-- log4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>

修改web.xml,把log4j加到項目中
<!-- Log4j配置 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:/log4j/log4j.xml</param-value>
</context-param>
<!-- 載入log4j配置文件 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

根據web.xml配置的路徑,在src/main/resource目錄下新建log4j/log4j.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} %l %m%n" /> </layout> <!--限制輸出級別 --> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="ERROR" /> <param name="LevelMin" value="DEBUG" /> </filter> </appender> <root> <priority value="debug" /> <appender-ref ref="CONSOLE" /> </root> </log4j:configuration>

經過上面的步驟後,log4j就配置好了,接下來是使用,在DemoController中使用,使用slf4j介面,代替log4j,這樣假如以後不用log4j了,用logback等其它日誌框架,只需修改配置文件,不需要修改java代碼
package com.my1.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class DemoController {
private static Logger logger = LoggerFactory.getLogger(DemoController.class);
@RequestMapping(value = "/toPage1.htm")
public ModelAndView toPage1() {
logger.debug("TEST");
return new ModelAndView("page1");
}
}

由於用了springmvc框架,日誌配置好後,會輸出很多spring日誌,在log4j.xml中,增加一段配置,修改spring包的日誌輸出級別
<!-- 通過<category></category>的定義可以將各個包中的類日誌輸出到不同的日誌文件中 -->
<category name="org.springframework">
<priority value="error" />
<appender-ref ref="CONSOLE" />
</category>

log4j的自定義輸出格式說明
<!-- %p 輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL -->
<!-- %r 輸出自應用啟動到輸出該log信息耗費的毫秒數 -->
<!-- %c 輸出所屬的類目,通常就是所在類的全名 -->
<!-- %t 輸出產生該日誌事件的線程名 -->
<!-- %n 輸出一個回車換行符,Windows平台為「/r/n」,Unix平台為「/n」 -->
<!-- %d 輸出日誌時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日
22:10:28,921 -->
<!-- %l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java:10) -->

log4j的輸出方式說明
<!-- Log4j提供的appender有以下幾種: -->
<!-- org.apache.log4j.ConsoleAppender(控制台), -->
<!-- org.apache.log4j.FileAppender(文件), -->
<!-- org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件), -->
<!-- org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件), -->
<!-- org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方) -->

㈣ log4j的使用步驟

1.將log4j-1.2.14.jar加入你的項目中;
2.在src/下創建log4j.properties|log4j.xml文件;
3.在web.xml中配置log4j的信息,如下:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
4.在項目webroot下創建你想要保存日誌文件的文件夾及文件,如webroot/logs/web_app.log;
具體log4j.properties文件,給你一個示例吧,如下:
log4j.rootLogger=INFO, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.stdout.layout.ConversionPattern=- %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${webapp.root}/logs/webapp.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.logger.com.opensymphony.xwork2=ERROR

# Control logging for other open source packages
log4j.logger.org.springframework=ERROR
log4j.logger.org.quartz=ERROR
log4j.logger.net.sf.ehcache=ERROR
log4j.logger.net.sf.navigator=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=ERROR

# Struts OgnlUtil issues unimportant warnings
log4j.logger.com.opensymphony.xwork2.util.OgnlUtil=error
log4j.logger.com.opensymphony.xwork2.ognl.OgnlValueStack=error
具體寫法可根據自己的項目進行配置。

㈤ 如何使用java代碼配置log4j

1、導入包

㈥ log4j 一個線程記錄一個日誌如何配置

log4j.rootLogger 是配置log4j的根logger
具體配置方法請看下面代碼

log4j.properties配置文件講解如下:
# Set root logger level to DEBUG and its only appender to A1
#log4j中有五級logger
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6
#DEBUG 7

配置根Logger,其語法為:
#log4j.rootLogger = [ level ] , appenderName, appenderName, …
log4j.rootLogger=INFO, A1 ,R
#這一句設置以為著所有的log都輸出
#如果為log4j.rootLogger=WARN, 則意味著只有WARN,ERROR,FATAL
#被輸出,DEBUG,INFO將被屏蔽掉.
# A1 is set to be a ConsoleAppender.
#log4j中Appender有幾層如控制台、文件、GUI組件、甚至是套介面伺服器、NT的事件記錄器、UNIX Syslog守護進程等
#ConsoleAppender輸出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 使用的輸出布局,其中log4j提供4種布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字元串),
#org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#靈活定義輸出格式 具體查看log4j javadoc org.apache.log4j.PatternLayout
#d 時間 ....
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#R 輸出到文件 RollingFileAppender的擴展,可以提供一種日誌的備份功能。
log4j.appender.R=org.apache.log4j.RollingFileAppender
#日誌文件的名稱
log4j.appender.R.File=log4j.log
#日誌文件的大小
log4j.appender.R.MaxFileSize=100KB
# 保存一個備份文件
log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout
#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

配置根Logger,其語法為:
log4j.rootLogger = [ level ] , appenderName, appenderName, ...

level 是日誌記錄的優先順序
appenderName就是指定日誌信息輸出到哪個地方。您可以同時指定多個輸出目的地。

配置日誌信息輸出目的地Appender,其語法為
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.option = valueN

Log4j提供的appender有以下幾種:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件),
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),
org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)

配置日誌信息的格式(布局),其語法為:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
....
log4j.appender.appenderName.layout.option = valueN

Log4j提供的layout有以下幾種:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字元串),
org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)

㈦ 用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

閱讀全文

與用代碼配置log4j相關的資料

熱點內容
java爬蟲解析html 瀏覽:861
約瑟夫集合java 瀏覽:275
我的ie8網站顯示不居中 瀏覽:423
win10圖片原地址在哪顯示 瀏覽:201
怎麼樣把app添加到小組件 瀏覽:148
省內順豐郵文件多少錢 瀏覽:715
絕密級文件應保留多少年 瀏覽:701
發文件給同事怎麼說 瀏覽:468
蘋果80歲用什麼app 瀏覽:28
順豐寄快遞文件多少錢 瀏覽:164
消費邦app是怎麼反現的 瀏覽:112
java調用介面方法 瀏覽:742
微信一種以上綁定關系 瀏覽:183
word圖片編輯大小邊框 瀏覽:468
威迅java培訓 瀏覽:389
linux禪道無法訪問 瀏覽:819
怎麼爬取歷史疫情數據 瀏覽:596
linuxjira6破解 瀏覽:694
哪個網站可以看所有檢察雜志 瀏覽:144
java高並發資料庫請求怎麼辦 瀏覽:551

友情鏈接