導航:首頁 > 文件教程 > log4j指定配置文件

log4j指定配置文件

發布時間:2023-09-13 14:57:15

java指定日誌配置路徑命令

單獨的Java程序包, 需要通過命令java -jar或java -cp的方式啟動;

我們可以在啟動命令中加入系統運行時變數, 在log4j載入配置文件之前通過System.getProperties(「path」)讀取此變數, 即可實現靈活載入當前路徑.

(1) 啟動腳本設置:

假設當前項目的目錄結構為:

/Projects/KafkaConsumer
丨 bin 項目的啟動腳本
丨 conf 項目的配置文件
丨 lib 項目的其他依賴包
丨 bogs 項目的日誌輸出路徑

啟動腳本位於bin目錄下, 內容示例如下:

# 獲取當前腳本所處的目錄, 然後進入其上級目錄, 最後pwd輸出該目錄, 最終的結果是/Project/KafkaConsumerbase_dir=$(cd `dirname $0`; cd ..; pwd)# 獲取Java運行程序的位置, 並指定主類java_bin=$(which java)main_class=」org.shoufeng.elastic.ConsumerMain」# 通過-cp、擴展CLASSPATH、指定主類的方式啟動項目, # 並通過「姿冊-D」的方式向此程序的運行時並桐環境中設置當前項目的路徑,# 即可在程序中通過System.getProperty(「base.dir」)獲取此路徑 nohup ${java_bin} -Dbase.dir=${base_dir} -cp ${CLASSPATH}:${base_dir}/conf:${base_dir}/lib/* ${main_class} >> /dev/null &

(2) Java程序讀取變數:

實log4j的FileAppender本身支持動態設置文件路徑, 如:

log4j.appender.logfile.File=${base.log}/logs/app.log

其中「${base.log}」是絕冊坦一個變數, 會被System Property中的base.log的值代替, 代碼中的使用方式為:

public static void main(String[] args) { // 獲取系統運行時變數中的日誌文件的輸出路徑 // 此變數需要在啟動命令中通過-D的方式設置 String baseDir = System.getProperty(「b

❷ 如何查看 log4j 載入 哪個 配置

自動載入配置文件抄:襲
(1)如果採用log4j輸出日誌,要對log4j載入配置文件的過程有所了解。log4j啟動時,默認會尋找source folder下的log4j.xml配置文件,若沒有,會尋找log4j.properties文件。然後載入配置。配置文件放置位置正確,不用在程序中手動載入log4j配置文件。如果將配置文件放到了config文件夾下,在build Path中設置下就好了。

若要手動載入配置文件如下:
(1)PropertyConfigurator.configure("log4j.properties") 默認讀取的是項目根目錄的路徑。此時的log4j.properties要放在項目目錄下。

❸ 【日誌】Log4j2配置

在同步日誌模式下, Logback的性能是最糟糕的,log4j2的性能無論在同步日誌模式還是非同步日誌模式下都是最佳的。本章主要介紹Spring Boot如何集成並配置使用Log4j2

引入Log4j2依賴包,其它依賴和Logback一樣,使用SLF4J統一輸出

然後需要在resource下面添加log4j2.xml配置文件,當然了如果你不添加,springboo會提示你沒有對應文件,並使用默認的配置文件,這個時候級別可以在application.properties中配置

和logback配置類似,主要是含有loggers、appenders,其中loggers由logger,root組成。appenders由console(控制台),File、RollingFile(輸出文件)組成,作用和配置和logback差不多

(1)Console
用來定義輸出到控制台的Appender,主要設置輸出格式和level級別

ThresholdFilter: 定義列印級別,onMismatch值設置是否拒絕其它
(2)File
用來定義輸出到指定位置的文件的Appender

(3)RollingFile
用來定義超過指定條件自動刪除舊的,創建新的Appender

參數說明:

Root節點用來指定項目的根日誌,如果沒有單獨指定Logger,那麼就會默認使用該Root日誌輸出

參數說明:

變數配置,類似常量定義

默認情況下springboot是不將日誌輸出到日誌文件中,這里對日誌框架的支持有兩種配置方式(和logback一樣):
(1)application.properties 或 application.yml (系統層面)
(2)logback-spring.xml (自定義文件方式)

默認名log4j2-spring.xml,可以省下在application.yml中配置,如果自定義了文件名,需要在application.yml中配置

此種方式可以處理比較復雜的情況,比如區分 info 和 error 日誌、每天產生一個日誌文件。

通過在DefaultRolloverStrategy 標簽下添加Delete標簽實現,保留7天的日誌

IfLastModified .age要和filePattern精確的時間一致, 否則貌似無效.

❹ java工程中如何使用log4j輸出指定路徑日誌文件,是java工程,不是web工程,謝謝

此文檔放在項目編譯文件.class相同的位置
### set log levels ###log4j.rootLogger = debug , stdout , D### 輸出到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n### 輸出到日誌文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 保存異常信息到單獨文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = logs/error.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = ERRORlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
配置獲取方法:
PropertyConfigurator.configure( "D:\\Project Files\\myeclipse\\commontest\\bin\\log\\log4j\\log4j.properties" );
Logger log=Logger. getLogger(TestLog4j.class);
log.warn( "嘿嘿");
log.debug( "嗚嗚");
log.error( "錯啦");

❺ 如何用log4j輸出多個自定義日誌文件

輪襲log4j輸出多個自定義日和伏志文件

如果在實際應用中需要輸出獨立的日誌文件,怎樣才能把所需的內容從原有日誌中分離,形成單獨的日誌文件呢?

先看一個常見的log4j.properties文件,它是在控制台和test.log文件中記錄日誌:

復制代碼 代碼如下喚桐攜:

log4j.rootLogger=DEBUG, 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.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=log/test.log

log4j.appender.logfile.MaxFileSize=128MB

log4j.appender.logfile.MaxBackupIndex=3

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

log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

如果在同一類中需要輸出多個日誌文件呢?其實道理是一樣的,先在Test.java中定義:

復制代碼 代碼如下:

private static Log logger1 = LogFactory.getLog("mylogger1");

private static Log logger2 = LogFactory.getLog("mylogger2");

log4j.properties中配置如下:

復制代碼 代碼如下:

log4j.logger.mylogger1=DEBUG,test1

log4j.appender.test1=org.apache.log4j.FileAppender

log4j.appender.test1.File=log/test1.log

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

log4j.appender.test1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

log4j.logger.mylogger2=DEBUG,test2

log4j.appender.test2=org.apache.log4j.FileAppender

log4j.appender.test2.File=log/test2.log

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

log4j.appender.test2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

不同日誌要使用不同的logger(如輸出到test1.log的要用logger1.info("abc"))。

還有一個問題,就是這些自定義的日誌默認是同時輸出到log4j.rootLogger所配置的日誌中的,如何能只讓它們輸出到自己指定的日誌中呢?別急,這里有個開關:

log4j.additivity. mylogger1 = false

它用來設置是否同時輸出到log4j.rootLogger所配置的日誌中,設為false就不會輸出到其它地方了。

但是這種方式有個小缺陷,那就是列印的日誌中類名只能是mylogger或者mylogger2。

2 動態配置路徑

若程序需要的.日誌路徑需要不斷的變化,而又不可能每次都去改配置文件,此時可以利用環境變數來解決。

log4j的配置如下:

復制代碼 代碼如下:

log4j.rootLogger=DEBUG,INFOLOG,DEBUGLOG

#info log

log4j.appender.INFOLOG =org.apache.log4j.DailyRollingFileAppender

log4j.appender.INFOLOG.File= ${log.dir}/${log.info.file}

log4j.appender.INFOLOG.DatePattern=.yyyy-MM-dd

log4j.appender.INFOLOG.Threshold=INFO

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

log4j.appender.INFOLOG.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

#debug log

log4j.appender.DEBUGLOG =org.apache.log4j.RollingFileAppender

log4j.appender.DEBUGLOG.File= ${log.dir}/${log.debug.file}

log4j.appender.DEBUGLOG.Threshold=DEBUG

log4j.appender.DEBUGLOG.MaxFileSize=128MB

log4j.appender.DEBUGLOG.MaxBackupIndex=3

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

log4j.appender.DEBUGLOG.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

此時,在使用log列印日誌之前,需要利用System定義日誌的輸出路徑和文件名的環境變數:

復制代碼 代碼如下:

System.setProperty(「log.dir」, logDir);

System.setProperty(「log.info.file」, infoLogFileName);

System.setProperty(「log.debug.file」, debugLogFileName);

附:Pattern參數的格式含義

%c 輸出日誌信息所屬的類的全名

%d 輸出日誌時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式,比如:%d{yyy-MM-dd HH:mm:ss },輸出類似:2013-8-19- 22:10:28

%f 輸出日誌信息所屬的類的類名

%l 輸出日誌事件的發生位置,即輸出日誌信息的語句處於它所在的類的第幾行

%m 輸出代碼中指定的信息,如log(message)中的message

%n 輸出一個回車換行符,Windows平台為「/r/n」,Unix平台為「/n」

%p 輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推

%r 輸出自應用啟動到輸出該日誌信息所耗費的毫秒數

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

❻ 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>

❼ Java log4j 配置文件怎麼寫,可以輸出log.info("")中的內容到指定目錄的.log文件

log4j.rootLogger=info, ServerDailyRollingFile, stdout
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=/usr/logs/mylog.log
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
log4j.appender.ServerDailyRollingFile.Append=true

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%c] %m%n

閱讀全文

與log4j指定配置文件相關的資料

熱點內容
windows8網路連接 瀏覽:442
怎麼快速增加qq群人數 瀏覽:919
錘子視頻播放器文件不存在 瀏覽:707
蘋果手機怎麼清理app緩存 瀏覽:682
花園戰爭2豪華升級包 瀏覽:517
電腦無法向u盤傳輸文件 瀏覽:823
bpn配置文件 瀏覽:932
501完美越獄工具 瀏覽:119
中間夾菜單裡面不能顯示壓縮文件 瀏覽:952
如何指導小學生參加編程比賽 瀏覽:275
物業的招標文件有哪些 瀏覽:452
保存游戲文件名非法或只讀 瀏覽:258
js怎麼做圖片時鍾 瀏覽:451
華為應用裡面有了app說明什麼 瀏覽:801
資料庫中xy是什麼意思 瀏覽:893
u盤打不開提示找不到應用程序 瀏覽:609
網站功能介紹怎麼寫 瀏覽:954
word在試圖打開文件時錯誤 瀏覽:108
主板無vga插槽怎麼連接編程器 瀏覽:521
錄視頻文件在哪裡刪除 瀏覽:881

友情鏈接