- - PR -
log4j.xmlのparseについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-12-26 19:07
はじめまして。
log4jについて質問させて頂きます。 log4jを以下のようなロジックで初期化した場合に log4j.xmlの記述が不正な場合、Exceptionを拾って処理を続行しないよう ハンドリングしたいのですが、できなくて困っています。 try { DOMConfigurator.configure(filename); } catch (Exception e) { return false; } DOMConfigurator.configure()内部のdoConfigure()ではExceptionを catch文でthrowせず、Logを出力しているだけのように見えます。 アプリ側でDocumentBuilderを利用して再度validationを行うのも しっくりきません。 何かハンドリングする良い方法はあるのでしょうか? | ||||
|
投稿日時: 2007-12-26 20:06
こんばんは。
log4j.xmlのプロパティチェックを行いたいと思われますが、 もしそうであれば、 DOMConfigurator.configure( ) ですが、 呼び出し元にExceptionをthrowsしていないので、内部で完結してしまっています。 その為、呼び出し元ではcatchできません。
どうしても、というならば、 doConfigure( )もどきを自作してしまう。という手もあります。 DOMConfigurator.java内で、プロパティチェックからエラーのアウトプットまで記述されているので、 できなくはないと思います。 #FactoryConfigurationErrorとかDocumentBuilderFactoryとかImportしているので。 #スマートではないかもしれません。。。 _________________ 普通?常識?何ですかそりは。 日本語は難しい・・・。 | ||||
|
投稿日時: 2007-12-26 20:25
だーてさん、早速のお返事ありがとうございます。
やはり自作するしかないのでしょうか・・・。 log4j.xmlへの記述ミスなどでDTDのvalidationにひっかかっているにも関わらず アプリの処理を中断できないという仕様に疑問を感じてしまうのは私だけでしょうか・・・。 運用上、あるユーザーにlog4j.xmlのタグの記載をお願いした場合などは、よくある気もしますし、何かもう少し簡単に回避する方法があれば良いのですが、難しいでしょうか? | ||||
|
投稿日時: 2007-12-26 21:02
> 何かもう少し簡単に回避する方法
ログを確認する。 | ||||
|
投稿日時: 2007-12-27 12:25
エラーログが出力されたタイミングではもうアプリは止まらないので
遅いのではないでしょうか? それとも、ログをポーリングというお話でしょうか? | ||||
|
投稿日時: 2007-12-27 12:50
テストする
| ||||
|
投稿日時: 2007-12-27 13:51
やはり、システムにあまり詳しくないユーザーにテスト実行(DBに接続しない状態?)で
ログ確認してもらうという運用を強いるのも今回難しそうなので アプリ側でDocumentBuilderを利用して再度validationを行うことにします。 ご返答下さったRayさん、わたなべさん、ありがとうございました。 | ||||
|
投稿日時: 2007-12-27 18:00
>エラーログが出力されたタイミングではもうアプリは止まらないので
サービスではなく、バッチのような非対話なアプリでしょうか。 ログを出力するだけのアプリを実行し、ログを確認すれば良いかと。いわゆるテスト。 あとはアプリからしか設定できなくするという手も。 結局内容を間違えてたら、思った通りのログは出力されませんが。 |