當前位置:首頁 » 存儲配置 » log4j的配置怎麼搞

log4j的配置怎麼搞

發布時間: 2022-09-21 22:01:05

1. eclipse中用 log4j 控制台不顯示日誌 ,配置如下:

#--------------------------------

#

log4j.rootLogger=INFO, stdout

log4j.logger.com.ibatis = DEBUG

log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG

log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG

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

log4j.logger.java.sql.Connection = DEBUG

log4j.logger.java.sql.Statement = DEBUG

log4j.logger.java.sql.PreparedStatement = DEBUG

log4j.logger.java.sql.ResultSet = INFO

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

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


2. 如何在spring中配置log4j

以前都是直接用log4j,重來沒自已配置過,學習一下如何在spring環境中配置log4j。

第一步:添加log4j的相關包,這個步驟對於spring環境可以省了,應該已經有了。

第二步:在spring的環境中添加log4j的配置。

<context-param>
<param-name>webAppRootKey</param-name>
<param-value>應用名.root</param-value>
</context-param>

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>

<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>3000</param-value>
</context-param>

<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>

這相當於按spring的規范,將log4j進行初始化,無非是指定一下配置文件位置。

應用名.root 相當於添加一個系統變數,主要是為了指定應用的路徑。

第三步:當於就是log4j本身的配置了。

log4j.rootCategory=INFO, stdout , R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d-[HL] %p %t %c - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${應用名.root}/WEB-INF/logs/xx.log
log4j.appender.R.MaxFileSize=1024KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[HL] %p %t %c - %m%n

log4j.logger.org.springframework=DEBUG
log4j.logger.org.hibernate=DEBUG
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.com.lagooo.as=DEBUG

{應用名.root}指的是第二步配的變數,這里要注意一下,如果是在myeclipse的開發環境,這個路徑是個臨時目錄,是在

metadata下面。\.metadata\.me_tcat\webapps\應用名
這個要注意,在正式運行時就會是你理解的目錄了。
關於配置,最主要的幾點是:
1:org.apache.log4j.RollingFileAppender 這是文件方式的輸出,但可能是多個文件。
2:log4j.appender.R.MaxFileSize=1024KB 規定最大到1024K,就生成新文件。

log4j.appender.R.MaxBackupIndex=10 最多生成10個,
這種方式下,日誌文件名會是:xx.log xx.log.1 xx.log.2……
3:log4j.appender.R.layout.ConversionPattern 這是內容部分:就不再一一介紹了,可查log4j的幫助。
4:最後幾行約定了相應代碼包出錯時的日誌級別。

第四步:使用:

import org.apache.log4j.Logger;
private static Logger log = Logger.getLogger(SessionListener.class);

log.info("SessionListener contextInitialized!");

引入logger,在類中生成靜態實例,調用 info debug error……方法。

3. 如何編寫log4j.properties文件,配置日誌信息

第一步:在工程中加入log4j所使用的jar文件
1:項目 > 屬性 :彈出項目的屬性窗口
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 {
public static void main(String[] args) {
Logger logger = Logger.getLogger(AccpTeacherLog4j.class.getName());//獲取日誌記錄器,這個記錄器將負責控制日誌信息
try {
logger.debug("設置教員的編號。");//使用Logger對象的debug、info方法輸出日誌信息
} catch (IllegalArgumentException ex) {
logger.info(ex.getMessage());//使用Logger對象的debug、info方法輸出日誌信息
}
}
}
第四步:編寫log4j.properties文件,配置日誌信息
### 把日誌信息輸出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender//日誌信息將寫到控制台
log4j.appender.stdout.Target=System.out//信息列印到System.out上
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n//指定輸出格式:顯示日期和log信息
### 把日誌信息輸出到文件:accp.log ###
log4j.appender.file=org.apache.log4j.FileAppender//日誌信息將寫到文件中
log4j.appender.file.File=accp.log//指定日誌輸出的文件名
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n//指定輸出格式:顯示日期,日誌發生位置和日誌信息
### 設置優先順序別、以及輸出源 ###
log4j.rootLogger=debug, stdout, file//設置優先順序別為debug、
日誌被輸出到多個輸出源
註:優先順序從高到低分別是ERROR、WARN、INFO、DEBUG
在此處,如果優先順序別設為info,那麼使用debug方法列印的日誌信息將不被輸出

4. 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(包含日誌產生的時間、線程、類別等等信息)

5. spring如何配置log4j

Spring是可以配置LG4G的,這個完全是可以實現的。

6. log4J文件如何配置

log4j.rootLogger=debug,append1
log4j.appender.append1=org.apache.log4j.ConsoleAppender
log4j.appender.append1.layout=org.apache.log4j.PatternLayout

7. java 如何配置log4j日誌文件保存路徑

以DailyRollingFileAppender 為例:假設每天一個日誌文件
有以下設置:

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=app.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p - %c -%-4r [%t] - %m%n

此時生成日誌文件將位於tomcat的bin目錄下,如要將日誌文件保存在 :根目錄/web-info/logs/下,個人有以下4種解決方案:
1 絕對路徑
log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/項目/WEB-INF/logs/app.log
但這種寫法靈活性很差

以下3中使用相同的設置原理: jvm的環境變數
2:spring的Log4jConfigListener
通過以下配置:
< context-param>
<param-name>webAppRootKey</param-name>
<param-value>webApp.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
< listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
...
log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/app.log
...
來解決
2:使用已有jvm變數:
例如:
log4j.appender.logfile.File=${user.home}/logs/app.log
日誌將位於:例如windows:C:\Documents and Settings\joe\logs\app.log

3 自己設置目錄,也就是在項目啟動時通過System.setProperty設置
通過實現ServletContextListener來解決:例如

public class log4jlistener implements ServletContextListener {
public static final String log4jdirkey = "log4jdir";
public void contextDestroyed(ServletContextEvent servletcontextevent) {
System.getProperties().remove(log4jdirkey);
}
public void contextInitialized(ServletContextEvent servletcontextevent) {
String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
//System.out.println("log4jdir:"+log4jdir);
System.setProperty(log4jdirkey, log4jdir);
}
}
web.xml配置:

<listener>
<listener-class>com.log4j.log4jlistener</listener-class>
</listener>

log4j.prtperties 配置:
log4j.appender.A1.File=${log4jdir}/WEB-INF/logs/app1.log
來解決。

8. log4j的配置問題

把你用到的類庫相關包的的日誌級別輸出改變即可

例如:
把框架Spring的相關包調試信息只輸出WARN級
log4j.logger.org.springframework=WARN

把框架Hibernate相關包的debug信息屏蔽掉,
log4j.logger.org.hibernate=WARN
log4j.logger.org.hibernate.SQL=ERROR

9. log4j.xml中spring配置怎麼弄

比較基本的:
#rootLogger是所有日誌的根日誌,修改該日誌屬性將對所有日誌起作用
#下面的屬性配置中,所有日誌的輸出級別是info,輸出源是console
log4j.rootLogger=info,console
#定義輸出源的輸入位置是控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
#定義輸出日誌的布局採用的類
log4j.appender.console.layout=org.apache.log4j.PatternLayout
#定義輸出日誌布局
log4j.appender.console.layout.ConversionPattern=%d%p[%c] - %m%n

10. 如何寫log4j.xml日誌配置文件

將logger中的 additivity 屬性配置為 false,則這個logger不會將日誌流反饋到root中。 可以達到以logger中配置的appender方式來輸出日誌而其他地方輸出的目的,看配置: root的作用是收集下面所有反饋上來的信息流並根據配置在root中appende

熱點內容
c語言字元串轉函數 發布:2025-03-24 05:17:03 瀏覽:476
androidstudio啟動模擬器 發布:2025-03-24 05:12:07 瀏覽:769
vs2008資料庫 發布:2025-03-24 05:12:01 瀏覽:445
國標壓縮彈簧 發布:2025-03-24 04:50:08 瀏覽:121
愛編程官網 發布:2025-03-24 04:32:20 瀏覽:655
編譯原理簡明教程答案 發布:2025-03-24 04:32:18 瀏覽:520
虛擬機linux訪問外網 發布:2025-03-24 04:30:49 瀏覽:48
優盤製作為什麼存儲空間會減少 發布:2025-03-24 04:30:42 瀏覽:811
泰拉瑞亞手機ios怎麼和安卓聯機 發布:2025-03-24 04:20:52 瀏覽:66
佛山壓縮 發布:2025-03-24 04:15:19 瀏覽:585