2011-07-18 52 views
2

我目前正在編寫自己的java.util.logging.Handler,我真的不明白那裏的概念... 我有我的發佈方法在這裏包含的邏輯,看看是否應該顯示LogRecord,一個Formatter(或只是SimpleFormatter如果.getFormatter() == null),最後我把格式化的字符串放入一個緩存。LogHandler flush vs直接輸出發佈

現在我寫了flush()方法,我在這裏遇到了麻煩:flush()方法永遠不會被Java調用,所以當發生錯誤時,它不會顯示。我把flush()撥打到我的publish()方法中,現在我可以看到日誌消息...所以我沒有在這裏看到conecept? flush()什麼時候應該打電話給誰?或者我必須讓它像我現在這樣做,並在publish()方法中由我自己調用flush()

如果你看看這個例子:http://www.java2s.com/Code/Java/Language-Basics/HowtowritecustomLoghandler.htm他們甚至不晚,現在與flush()方法

回答

0

可能有點什麼,但對於其他人的利益......

林看到類似的東西,並假設你有類似的行爲

我看了看它的用法,它似乎是一種以標準方式執行刷新的方法,並且似乎可以保證你在關閉時更容易刷新。

有些人「沖洗自己」,我想保證超類也可以從沖洗中受益。

最後,因爲在這個刷新沒有閾值控制,並且由於我沒有看到它在調試會話中調用,或者調用它的代碼,所以我不認爲Java在這方面給了我們什麼。

+1

我現在大部分時間都在使用log4j,但是謝謝! – reox

+0

np!是的,Java日誌記錄是可怕的! – HaveAGuess