2011-09-19 18 views
5

私のアプリケーションでlogginをlogginに使用しています。Log4jは正しく設定されていません。

LogManager.resetConfiguration(); 
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("log4j.properties"); 
Properties props= new Properties(); 
props.load(stream); 
PropertyConfigurator.configure(props); 

しかし、これで問題は私が処理中にログレベルを変更したいときはいつでも、私は、サーバーを再起動しなければならなかったこと、だった:今ので、私は次のコードを使用したロギングを設定するには私は15分として言及している指定した時間後に再ロードするlog4j.propertiesファイルに助けるべき理想的

LogManager.resetConfiguration(); 
PropertyConfigurator.configureAndWatch(("log4j.properties", 900000L); 

このコードを - :だから私はにコードを変更しました。しかし、まだコードが動作していません

コード中に何かがありませんか?

よろしくお願いいたします。

+1

このスタンドアロンの例を作成し、期待どおりに動作するかどうか試しましたか?また、クラスパスローディング手法からファイルシステムベースのテクニックに移行しましたか?その場合は、log4j.propertiesへのパスが正しいことを確認してください。 –

答えて

7

configureAndWatch()ファイルを監視します。クラスパスのリソースではありません。

+0

ya私はそれを試して..それは正常に働いた..ありがとう –

1

私は解決策を試して、うまくいきます!ポイントは、リソースのようなものではないファイルのようなパスを提供しなければならないということです。

//Resource 
DOMConfigurator.configureAndWatch("/log4j.xml", 2000L); 

//File 
DOMConfigurator.configureAndWatch("./src/log4j.xml", 2000L); 

2番目のオプションを試してみて、のlog4j.xmlを変更し、それをテスト!

関連する問題