- - PR -
JDK1.4 ロギングAPI の使用法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-06-22 22:03
初めて投稿いたします。
WindowsXP、WSAD5.0を使用して、Webアプリケーションを開発しているものです。 現在、JDK1.4 ロギングAPIを用いてログ機能を作成しています。 java.util.logging.Formatterを継承して mylogging.FileFormatterという独自のFormatterを作成し logging.propertiesファイルで以下のように指定したのですが、 きちんとFormatterが選択されずデフォルトのFormatterが使用されてしまいます。 以下が、logging.propertiesと、それを使用しているコードの内容です。 --logging.properties------------------------------------------------------ handlers= java.util.logging.FileHandler .level= ALL java.util.logging.FileHandler.pattern = C:/MyLogging.log java.util.logging.FileHandler.limit = 50000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = mylogging.FileFormatter -------------------------------------------------------------------------- --使用している箇所のコード------------------------------------------------ package mylogging; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.logging.LogManager; import java.util.logging.Logger; public class TestLogging { public Logger loginit() { try { // 設定ファイルの読み込み // 注:logging.propertiesは、WEB-INF\classes内に配置 InputStream inputStream = this.getClass() .getClassLoader() .getResourceAsStream("logging.properties"); LogManager.getLogManager().readConfiguration(inputStream); } catch (FileNotFoundException ex) { } catch (IOException ex) { } // ロガーを取得 Logger logger = Logger.getLogger("TestLogger"); logger.log(Level.INFO, "ログを初期化しました。") } } -------------------------------------------------------------------------- ログ自体は指定したファイルに出力されているので、 logging.propertiesファイルは読み込めていると思うのですが、 何故かFormatterだけはデフォルトになってしまいます。 そもそもlogging.propertiesファイルには、 独自のFormatterを指定できないのでしょうか? それとも、logging.propertiesファイルの書き方や配置が 間違っているのでしょうか? ご存知の方がいらっしゃいましたら、ご教授お願いいたします。 [ メッセージ編集済み 編集者: sn 編集日時 2004-06-22 22:05 ] |
|
投稿日時: 2004-08-06 21:45
>そもそもlogging.propertiesファイルには、
>独自のFormatterを指定できないのでしょうか? 独自のFormatterの指定自体はできるはずです。 ここに例が載っています。 http://www.hellohiro.com/logging.htm |
|
投稿日時: 2004-09-29 11:36
もう解決したかも知れませんが、後々の為に。。
とりあえず私も同様の問題に対処する為調査しました(jdk1.4.2_04/tomcat4.1.30)。 #WSAD5.0との事ですが原因は同じではないかと思います。 原因は、LogManagerがクラスをロードする際SystemClassLoaderを利用するので 独自のカスタムFormatterをロードする事出来ないためです。 (LogManager/FileHandlerのソースから判断) したがって、webアプリの中などのカスタムFormatterはロードできません。 解決策は、$JAVA_HOME/jre/lib/extに、独自Formatterを含むjarファイルを配置する事 です(難儀やな〜)。 tomcatのクラスローダの説明を参考にしました.(http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html) その際配置したjarファイルの依存するjarも配置する必要があるので注意してください。 |
1