This Project Has Not Released Any Files
log4cppがもっているログ出力メソッド(例えば、Category::log())は、ログ出力が失敗しても、失敗を報告しないです。
なぜなら、例えば、FileAppender.cppのログ出力部分は
です。エラーを無視していますね・・・。
まあ・・・、ログというのは本来の処理ではないので、この考え(無視する)は間違っていないと思います。また、一回のログ出力メソッドの呼び出しで、複数の出力先(アペンダー)に対して出力を行うので、エラーをハンドリングするというのは難しいでしょう*1。
ですが、「設定ファイルのミスでログ出力されませんでした」だと、正直言って使い難いんです。
試験(結合試験)時に、設定ファイルの記述ミスをするということは良くあることなのですが、それによって「ログが出力されていないので、せっかくやった試験をやり直し」とか、「ログが出力されない原因が良く分からない」、だと困るわけです。
と言うことで、ここでは、「もう少し、確実にログを出力する」、「失敗したときにはちゃんとその原因を調べることができるようにする」ためにはどうすれば良いのかということを考えます。
まずは、これを押さえましょう。ログ出力が失敗するときについては、以下の3つのパターンがあると考えています。
順に詳細を説明します。
では、それぞれの場合について対策を考えます。
[PageInfo]
LastUpdate: 2012-05-12 11:23:04, ModifiedBy: daruma_kyo
[License]
GNU Free Documentation License
[Permissions]
view:all, edit:login users, delete/config:members