- - PR -
log4jについての質問
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-11 22:25
<1>
log4jを使用しようと思いあるHPから以下のようなサンプルを手に入れたのですが、 あるフォルダ以下でエラーが起こった場合このファイルに書き込むといったことができるので しょうか? ex.フォルダ構成 soft1以下で起こったエラーをひとつのファイルに書き込みたい。 (クラス名を一つずつ指定せずにフォルダ単位で指定したい。) soft1----file1 ----file2 ----file3 ----file4 <2> SQLExceptionによるエラーの場合はSQLもログファイルに書き込みたい。 もしご存知の方いらしたら教えていただけないでしょうか。 宜しくお願いいたします。 ========================================================================== <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <!--テキストにログを出力するConsoleAppenderをSTDOUTとして定義 --> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender" > <!-- デフォルトのログレベル --> <param name="threshold" value="WARN"/> <!-- ログの出力形式を指定 --> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%t] (%F:%L) - %m%n"/> </layout> </appender> <!--決められた期間でログを別ファイルに切り替えて書き込む DailyRollingFileAppenderをDAILYとして定義 --> <appender name="DAILY" class="org.apache.log4j.DailyRollingFileAppender"> <!-- ログのファイル名 --> <param name="file" value="daily-log" /> <!-- デフォルトのログレベル --> <param name="threshold" value="INFO"/> <!-- 日付が変わる瞬間daily-log-2002-06-23のような形式で 現在のログがリネーム --> <!-- すでにログが存在する場合、ファイルにログを追加 --> <param name="append" value="true" /> <!-- ログの出力形式を指定 --> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="'%c', '%p', '%d', '%m'%n" /> </layout> </appender> <!-- パッケージmypkgに対してコンソールにinfo以上のログを出力 --> <category name="osbook.log2"> <priority value="info" /> <appender-ref ref="STDOUT"/> </category> <!-- DAILYアペンダに対してossbook.log2.MyClass2をdebugに設定 --> <category name="osbook.log2.MyClass2"> <priority value="debug" /> <appender-ref ref="DAILY" /> </category> <!-- すべてのログをinfo --> <root> <appender-ref ref="STDOUT" /> <appender-ref ref="DAILY" /> </root> </log4j:configuration> ========================================================================== | ||||
|
投稿日時: 2004-08-12 08:44
こんにちは。
「できるのでしょうか?」という質問なので、「できますよ」という回答で いいでしょうか? <1> フォルダ単位というのはやったことがないのですが、 パッケージ単位でログ出力はできます。 <2> 実行するSQL文を書き出せばいいだけなので、できますよ。
| ||||
|
投稿日時: 2004-08-13 00:28
お返事ありがとうございます。
できれば質問1,2を実現するのに サンプルのXMLをどのように変更したらよいか教えていただけないでしょうか。 よろしくお願いいたします。 | ||||
|
投稿日時: 2004-08-13 01:42
SQL生成するところにすべてデバッグ用のログ出力コードを書くのは大変面倒です。
P6Spy ってのを使うとコードに手を加えずにSQLをログに出力できますよ。PreparedStatementでどんな値をバインドしたかも記録されるので大変便利です。 http://www.p6spy.com/ | ||||
|
投稿日時: 2004-08-13 14:23
インギさんお返事有難うございます。
P6Spy の件有難うございました。 どなたか以下の件教えていただけないでしょうか。 <1> log4jを使用しようと思いあるHPから以下のようなサンプルを手に入れたのですが、 あるフォルダ以下でエラーが起こった場合このファイルに書き込むと方法を教えていただけないでしょうか。 ex.フォルダ構成 soft1以下で起こったエラーをひとつのファイルに書き込みたい。 (クラス名を一つずつ指定せずにフォルダ単位で指定したい。) soft1----file1 ----file2 ----file3 ----file4 | ||||
|
投稿日時: 2004-08-13 15:53
file1〜file4というのはクラス??ログファイル??なのかが良く分りませんが、 noriさんの仰る通りパッケージ毎であればCategoryを設定し、 それぞれ指定したファイルに書き込めますよ。 エラーが起こった場合、というのはLEVELがERRORという表現でよいのではないでしょうか。 どこをどう直せば良いか、というのはご自分でお調べください。 |
1