2012-03-02 7 views
2

プロパティファイルを使用していくつかのJavaロギングをフォーマットしようとしていますが、動作しません。 は、私はプロパティに次の行をファイル持っている:私のカスタムフォーマッタLogFormatterは、ログ出力はSimpleFormatterはむしろ私のカスタムフォーマッタよりも、使用されていることを示しているJavaロギングのフォーマット

mypackage.loggingである

java.util.logging.ConsoleHandler.formatter=mypackage.logging.LogFormatter 
java.util.logging.FileHandler.formatter=mypackage.logging.LogFormatter 

ロギングプロパティファイルでカスタムフォーマッタを使用するにはどうすればよいですか?

編集: com.bea.logging.LogMessageFormatter、SimpleFormatter、XmlFormatterなどのすべてのpremadeフォーマッタを試しました。彼らはうまく動作します。これは、作成した新しいフォーマッタが機能しない(Formatterを拡張した)だけのものです。これはクラスパスの問題でしょうか?

答えて

0

LogManagerは、おそらくログファイルにリダイレクトされるエラーをSystem.errに報告します。そのログファイルを見つけることがあなたを助けるはずです。

system class loaderから見えないクラスを扱っている場合は、JDK-6448699 LogManager does not load log handler correctlyJDK-6878454 LogManager class loading inconsistent with Java EE best practicesがあります。あなたのフォーマッタを証明するために

は、次のコードを試してみてくださいシステムクラスパスから見える:

Class.forName("mypackage.logging.LogFormatter", true, ClassLoader.getSystemClassLoader()); 

あなたはtruesun.misc.URLClassPath.debugシステムプロパティを設定したり、クラスローディング上のいくつかのより多くのデバッグ情報を取得するために起動時に-verbose:classを使用することができます。

関連する問題