2009-12-07 18 views
3

使用java.util.logging中的日誌記錄類,是否可以使用不同的格式化程序設置兩個不同的FileHandler,它們會將不同的日誌記錄信息寫入兩個不同的文件?是否可以在同一個logging.properties文件中設置兩個FileHandler?

我目前使用logging.properties文件,並處理線情況並不樂觀:

handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler 

我不明白我怎麼可以在兩個java.util.logging.FileHandler S之間以後在文件中區分。

看看相關的問題,它看起來像切換到Log4J會給我想要的靈活性,但我寧願避免依賴另一個庫,如果JSE日誌庫可以折騰到做我想做的事情。

+1

剛剛面對這個問題,真令人失望! – HaveAGuess

回答

4

詳細通過the relevant API表明一個響亮號讀

然後選擇是動態之間在代碼中創建記錄器,這表現在回答this question,只是放棄和使用Log4J的,或另一個更復雜的日誌庫。

-1

您可以通過擴展Level類來創建自定義日誌級別;只需給它一個唯一的ID。

import java.util.logging.*; 

public class CustomLogLevel extends Level 
{ 
    public static void main(String[] args) 
    { 
    Logger log = Logger.getLogger("robertgrant.org"); 
    Level templevel = Level.WARNING; 
    Level level = new CustomLogLevel("Rob Level", templevel.intValue()); 
    Level customlevel = level.parse("Rob Level"); 
    log.log(customlevel, "This is from a custom level"); 
    } 

    public CustomLogLevel(String name, int value){ 
    super(name, value); 
    } 
} 
+0

我怎麼能讓這個問題更容易理解?如果再看一遍,則不會提及任何地方的自定義日誌級別。 謝謝你的時間。 – MHarris

+0

我想知道這是否會爲你解決你的問題;如果您設置了兩個與不同日誌文件關聯的記錄器,則可以使用自定義日誌級別訪問特定的記錄器。 –

+0

哦,我明白了!首先,我無法幫助建立兩個伐木工人,這是我的問題的主旨(對於含糊不清的道歉),但是這一定有助於消除一旦我建立起來的歧義。謝謝! – MHarris

0

可能的話,我不知道該怎麼然而

public static void main(String args[]) { 

    Logger logger=Logger.getLogger(""); 
    FileHandler fh=new FileHandler("<yourPath" + 
      "%g.txt",20000,5); 
    fh.setFormatter(new SimpleFormatter()); 
    FileHandler fd=new FileHandler("yourSecondPath" + 
      "%g.txt",20000,5); 
    fd.setFormatter(new SimpleFormatter()); 

    logger.addHandler(fd); 
} 

,你可以很容易地通過自己的格式化器,並設置不同級別的日誌更換simpleFormaters兩個處理器,但再次聲明在日誌屬性我在logging.properties文件中找不到任何有關語法的信息以獲取此行爲

相關問題