簡體   English   中英

使用Java Web Start進行log4j配置

[英]log4j configuration with Java Web Start

我們的Java WebStart應用程序不包含log4j配置文件; 它只是設置了一些硬編碼的記錄器和追加器。

我希望各個客戶能夠在某處刪除log4j.properties文件,並在故障排除情況下設置自己的自定義日志記錄。 我可以將log4j.properties文件捆綁到我們應用程序的某個jar中,這將允許配置,但是每個客戶端的配置都是相同的,而不是僅影響我要解決的客戶端。 另外,我無法動態更改設置。

有沒有辦法可以劫持log4j初始化過程來使用每個客戶端的配置文件?

這里的基本問題是Java Web Start嚴格限制了對計算機的訪問。

如果您正在運行已簽名的應用程序,並且該用戶允許您完全訪問該計算機,則應該能夠執行此操作。 如果沒有,則無法使用默認機制log4j執行此操作。

您可能希望編寫自己的配置程序,使用Java WebStart API從文件系統讀取,然后將其提供給log4j,但這需要一些肘部潤滑劑。

您可以使用PersistenceService將log4j配置存儲在本地用戶的計算機上(無需簽名),或至少在啟動Web啟動應用程序時存儲是否加載特殊配置的標志。

還有一個FileOpenService ,最終用戶可以使用該文件打開本地log4j.xml文件,以便即時重新配置日志記錄工具。 這樣,用戶可以控制配置,並且可以控制何時何地應用它。

您的應用程序代碼使用FileOpenService獲取到log4j配置文件的流,然后可以使用DOMConfigurator.configure(InputStream)重新配置log4j。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM