Log4j info和error輸出到不同檔案
1、log4j提供了為不同的 Appender 設定日誌輸出級別的功能,方法是配置Appender的Threshold(log4j.appender.D.Threshold = DEBUG)。例如:
### set log levels ### 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 = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n ### 輸出到日誌檔案 ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = logs/log.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG ## 輸出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 ### 儲存異常資訊到單獨檔案 ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File = logs/error.log ## 異常日誌檔名 log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR ## 只輸出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
配置後,經過測試發現,在log.log檔案中同時輸出了debug和error兩種資訊。因為log4j.appender.D.Threshold = DEBUG表示輸出debugger級別以上的日誌,error級別大於debug,所以error和debug都會輸出到log.log中,而error.log中只儲存了錯誤日誌。
2、為了解決上述問題,使用下面方式配置:
### set log levels ### log4j.rootLogger = info,stdout,infolog,errorlog ### 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{MM-dd HH:mm:ss}] [%p] [%c:%L] %m%n ### 輸出到日誌檔案 ### log4j.logger.infolog = info,infolog log4j.appender.infolog.Append = true log4j.appender.infolog = org.apache.log4j.DailyRollingFileAppender log4j.appender.infolog.File = /data/logs/ttbrain/ttbrain-recommend-api.log log4j.appender.infolog.layout = org.apache.log4j.PatternLayout log4j.appender.infolog.layout.ConversionPattern = [%d{MM-dd HH:mm:ss}] [%p] [%c:%L] %m%n ### 儲存異常資訊到單獨檔案 ### log4j.logger.errorlog = error,errorlog log4j.appender.errorlog.Append = true log4j.appender.errorlog.Threshold = error log4j.appender.errorlog = org.apache.log4j.DailyRollingFileAppender log4j.appender.errorlog.File = /data/logs/ttbrain/ttbrain-recommend-api_error.log log4j.appender.errorlog.layout = org.apache.log4j.PatternLayout log4j.appender.errorlog.layout.ConversionPattern = [%d{MM-dd HH:mm:ss}] [%p] [%c:%L] %m%n
1)說明:
- 在rootLogger上指定level和appenderName;
- 下面對每個appenderName的配置中,使用log4j.logger.appendName = levle,appendName 的格式來配置級別(例如:log4j.logger.infolog = info,infolog ) ,同時用Threshold來決定不同級別的日誌。
2)測試:
public class Log4jDemo { static Logger infoLogger = Logger.getLogger("infofile"); static Logger errorLogger = Logger.getLogger("errorfile"); public static void main(String[] args) { try { infoLogger.info("run division.."); int result = 7/0; } catch(ArithmeticException e) { errorLogger.error("Can not divide by zero"); } } }
即可。
相關推薦
Log4j info和error輸出到不同檔案
1、log4j提供了為不同的 Appender 設定日誌輸出級別的功能,方法是配置Appender的Threshold(log4j.appender.D.Threshold = DEBUG)。例如: ### set log levels ### log4j.rootLog
Log4j 分級別過濾輸出日誌檔案
詳細配置,分級別過濾,達到指定大小後重新生成新檔案,每天生成新的檔案 log4j.rootLogger=debug,debug,info,warn,error,fatal,stdout #log4j.appender.stdout=org.apache.log4j.Con
Log4J日誌配置詳解和自定義log4j日誌級別及輸出日誌到不同檔案實現方法
package com.jo.work.log4j; import java.util.Enumeration; import org.apache.log4j.Appender; import org.apache.log4j.FileAppender; import org.apache.log4j.
log4j日誌按分模組和分級輸出到不同的檔案中去
現在遇到這樣一個場景: 輸出日誌,按照不同的模組,和級別 輸出到不同的檔案中。 現在有 org.zq.core 和 org.zq.web 包下需要將 info 和 error 分別輸出到檔案中,也就是說,需要輸出到4個檔案中。 以下為配置檔案; `實現思路
log4j 控制檯和檔案輸出亂碼問題解決
一個小問題,卻讓我感覺到,現在真正動腦的人很少。。我來說說吧。 今天遇到一個小問題,log4j輸出到檔案亂碼,控制檯正常。顯然是編碼問題導致。Google一搜,幾乎一水的說: 專案中log4j在英文版linux下輸出中文日誌為亂碼。由於
Log4j不同級別輸出到不同檔案的幾種方式
log4j已經是古董了,但是現在專案還在用,需要用到不同級別輸出到不同檔案,所以把幾種實現方式記錄下來,備忘! 下面的幾種配置都是使用properties的情況,但是xml的原理也一樣. 使用LevelRangeFilter 使用LevelMatchFil
Log4J-Log4J配置介紹/Log4J不同模組不同日誌級別輸出到不同檔案的配置
##=======================Log4J一些日誌級別配置測試說明20180622============================## #==============一、根配置====================# #1. 首先定
log4j日誌輸出分級別或模組到不同檔案
一、 實現分模組,輸出到不同的日誌檔案, 以下是log4j.properties的實現 log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.
argo的輸入輸出--output和input輸出目錄或檔案到下一步驟
轉載請註明出處: argo的輸入輸出–output和input輸出目錄或檔案到下一步驟 有部分場景需要使用output把目錄或者檔案傳遞到下一個步驟。 argo提供了兩種方式 一種是引數方式parameter 一種是元件方式artifacts 各自適用於不同的場景,引數方式是
log4j不列印sql,不輸出日誌檔案到指定目錄
#log4j.rootLogger=CONSOLE,info,error,DEBUG log4j.rootLogger=infoA,errorA,CONSOLE,DEBUGA //注意這裡不要用INFO,DEBUG等 改個名字 log4j.appender.CONSOLE=org.apach
error LNK2005 --類的宣告和定義放在一個檔案中
刷C++primer的時候,將類的宣告和定義均放在標頭檔案中,報錯error LNK2005 1> Sales_data.h 1>Sales_data.obj : error LNK2005: "public: class Sales_data & __this
python log輸出到檔案和控制檯
import logging LOG_FILE = 'mylog.log' file_handler = logging.FileHandler(LOG_FILE) #輸出到檔案 console_handler = logging.StreamHandler() #輸出到控制檯 fil
[轉載] js 讀取和輸出txt檔案
https://www.jb51.net/article/46712.htm ActiveXObject is not defined,ActiveXObject是IE瀏覽器獨有支援的外掛,其他瀏覽器可能不支援。 then--前端不好將資料儲存到本地txt檔案,可以通過jq
Linux下對lvm邏輯卷分割槽大小的調整(針對xfs和ext4不同檔案系統)
當我們在安裝系統的時候,由於沒有合理分配分割槽空間,在後續維護過程中,發現有些分割槽空間不夠使用,而有的分割槽空間卻有很多剩餘空間。如果這些分割槽在裝系統的時候使用了lvm(前提是這些分割槽要是lvm邏輯卷分割槽),那麼就可以輕鬆進行擴容或縮容!不同檔案系統型別所對應的建立、檢查、調整命令不同,下面就針對xf
日誌輸出Log4j配置和使用
在開發過程中,日誌資訊是必不可少的,一般我們會選擇在控制檯檢視程式輸出的日誌資訊,而常用到的日誌工具是Log4j,下面就其在開發中的配置來了解下。 一、瞭解日誌輸出工具Log4j &n
日誌檔案 log4j解釋和 spring Boot開發步驟
日誌處理技術 日誌級別: error>warn>info>debug 注意:級別越高,列印日誌越少 日誌分類 父日誌 整個專案中的日誌,全域性日誌 子日誌 針對某個包列印的日誌 子日誌的優先順序高於父日誌 springmvc 中 log4j
《Linux程式設計》第三章(標準IO庫、格式化輸入輸出、檔案和目錄的維護、掃描目錄)
標準IO庫 在啟動程式時,有三個檔案流是自動開啟的,分別是stdin,stdout,stderr。 1. fopen函式:用於檔案和終端的輸入和輸出。函式原型如下: #include <stdio.h> FILE *fopen(const char* f
使用profile和resource配置不同環境配置檔案
在pom.xml中增加如下配置 <resources> <resource> <directory>src/main/resources</directory> <excludes> <excl
logback日誌輸出不同級別到不同檔案(開發例項配置)
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 控制檯 appender --> <appender name="STDOUT" class="
python在終端輸出不同顏色的列印,自定義日誌和自定義log輸出級別
實現過程: 終端的字元顏色是用轉義序列控制的,是文字模式下的系統顯示功能,和具體的語言無關。 轉義序列是以ESC開頭,即用\033來完成(ESC的ASCII碼用十進位制