- PR -

Log4J ファイルのロック

1
投稿者投稿内容
takashi
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 79
お住まい・勤務地: 東京
投稿日時: 2006-05-26 18:30
いつも参考にさせていただいております。

今回は掲題の件で解決策が見つからず、質問させていただきました。

現象としては以下の通りです。

@1つのログファイルにTOMCAT上のアプリと、ストアドプロシージャからログ出力したい。
ATOMCAT上のアプリからはLog4J(DailyRollingFileAppender)を使用してロギングを行っている。
Bストアドプロシージャからは「"ECHO メッセージ" >> "ログファイルフルパス"」というDOSコマンドを発行することでロギングを行っている。

ここでBを行おうとすると、
「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」
とエラーになります。
この"Log4Jがファイルのロックをつかんだまま状態"を解消する方法を
ご存知の方がいらっしゃいましたらご教授いただければと思います。

ちなみにストアドはSQLServer2005のT-SQLですが、ファイル操作のAPIが
見当たりませんでした。

以上よろしくお願いします。
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-05-26 19:21
引用:

1つのログファイルにTOMCAT上のアプリと、ストアドプロシージャからログ出力したい。



これをやめたらいいんじゃないかしら。

ひとまとめにするのが何で必要なのかわかりませんが、
「ログ出力時にひとまとめである必要」は無いと思うのですがね。
整形は後で別ファイルでやったらいいんじゃないですか?
みじんこ
会議室デビュー日: 2005/01/08
投稿数: 6
投稿日時: 2006-05-28 16:46
これでいかがでしょう。


「複数プロセスのログを同一ファイルに書き出すことはできますか?」
http://www.ingrid.org/jajakarta/log4j/jakarta-log4j-1.1.3/docs-ja/FAQ.html#many21
takashi
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 79
お住まい・勤務地: 東京
投稿日時: 2006-05-29 10:02
返信ありがとうございます。

>せんさん

確かに良くない仕様かもしれませんね。とりあえず「できない」ことが明らかになった場合はその方向で検討しようと思います。

>みじんこさん

そちらは拝見済みでした。そもそも、複数プロセスのログを同一ファイルに出力する為の方法が用意されているということは、それを使えということなんでしょうね。

どちらにせよロギングの方法を見直さないとだめなようです。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)