我知道,無國籍豆不維護會話狀態,但我需要的僅僅是一個記錄器。我應該在每個被調用的方法中使用記錄器嗎?如果沒有,那麼我應該在哪裏初始化它?我可以在無狀態會話bean中使用實例變量嗎?
是這是肯定的,如果我寫這樣的代碼,我也不會在使用記錄器的一些方法得到NullPointerException異常?
@PostConstruct
public void init() {
logger = Logger.getLogger();
}
我知道,無國籍豆不維護會話狀態,但我需要的僅僅是一個記錄器。我應該在每個被調用的方法中使用記錄器嗎?如果沒有,那麼我應該在哪裏初始化它?我可以在無狀態會話bean中使用實例變量嗎?
是這是肯定的,如果我寫這樣的代碼,我也不會在使用記錄器的一些方法得到NullPointerException異常?
@PostConstruct
public void init() {
logger = Logger.getLogger();
}
我想你不希望有一個請求/會話特定記錄儀,對不對?在這種情況下,你甚至可以使用類的靜態成員添加的記錄,並讓所有的bean實例使用相同的記錄。
創建一個單獨的類,這將具有以下屬性:
getInstance()
方法將給出類的唯一實例getLogger()
方法得到記錄器初始化記錄器在這個類的構造函數和
可以從getLogger獲得日誌()方法的每次你需要使用它
嘗試:
private static final Logger log = Logger.getLogger();
如果您需要線程特定值要小心,記錄儀的輸出處理程序中每行寫入線程的名字,你應該罰款。
這不是「爭議」,而是「對話」狀態,雖然這個話題可能會引起爭議:) – Thomas 2012-04-18 15:02:44
謝謝,托馬斯!我真的很抱歉我的英語。 – dmiandre 2012-04-18 15:07:07