- - PR -
log4jのログ出力先指定について。
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2002-11-14 10:06
こんにちわ。クボタと申します。
log4jを使ってログ出力を行っているのですが、出力先が C:\Documents and Settings\kubota\logfile.log になってしまいます。 相対パス指定で出力先を/WEB-INF/あたりにしたいのですが。 環境は j2sdk1.4.0 tomcat4.0.3 log4j1.2.7 eclipse2.0.1を使用しています。 プロパティファイルの内容は log4j.rootCategory=INFO, A1 log4j.appender.A1=org.apache.log4j.RollingFileAppender log4j.appender.A1.file=logfile.log log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n です。 プログラム中ではlog4j.Loggerクラスを継承したクラスをつくり(例UseLog)、 UseLog.logger.info("log test info"); として出力しています。 例外処理にはUseLog内に public static String getStackTrace(Exception e){ StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); return sw.toString(); } を定義し例外発生時に UseLog.logger.info(UseLog.getStackTrace(e)); としてスタックトレースを吐き出しています。 初めてのJava開発でわからないことだらけなので、お勧めのログ出力処理について教えていただけたら幸いです。 では、よろしくお願いします。 |
|
投稿日時: 2002-11-14 11:03
log4j.appender.A1.file=logfile.log
の部分にパスを書くのでは解決しないですか? あと、継承したクラスを作るのは何か意味があるのでしょうか。 スタックトレースを出したいのなら、 logger.info("message", ex); のようにすればいいと思うのですが・・・。 |
|
投稿日時: 2002-11-15 09:47
お返事ありがとうございます。
>log4j.appender.A1.file=logfile.log >の部分にパスを書くのでは解決しないですか? 確かに log4j.appender.A1.file=/Program Files/Apache Tomcat 4.0/webapps/log1/logfile.log と書けばそこにログが吐き出されるのですが、この方法しかないのでしょうか? >あと、継承したクラスを作るのは何か意味があるのでしょうか。 >スタックトレースを出したいのなら、 >logger.info("message", ex); >のようにすればいいと思うのですが・・・。 素人っぷりを発揮してしまい申し訳ありません。 確かにその方法でスタックトレースが出ました。 確認なんですけど、その方法ではログ出力処理を記述するクラスで Logger logger = Logger.getLogger(xxx.class); と定義してlogger.info("message", ex);ですよね。 |
|
投稿日時: 2002-11-15 13:54
>Logger logger = Logger.getLogger(xxx.class);
>と定義してlogger.info("message", ex);ですよね。 そうです。 >この方法しかないのでしょうか? Webアプリのベースディレクトリからの相対パス指定でやりたい ということでしょうか。 |
|
投稿日時: 2002-11-15 14:48
早速のお返事ありがとうございます。
>Webアプリのベースディレクトリからの相対パス指定でやりたい >ということでしょうか。 そのとおりです。 プロパティファイルで log4j.appender.A1.file=logfile.log こう指定すると C:\Documents and Settings\kubota\logfile.log に吐き出される理由もわかりません。 eclipseに関係しているのでしょうか? どうかご教授お願いします。 |
|
投稿日時: 2002-11-15 15:02
Tomcatの起動方法によって違ったりしませんか?
たとえば<CATLINA_HOME>/bin/startup.batとスタート−>プログラム・・・で。 その辺がヒントになるかと・・・ |
|
投稿日時: 2002-11-15 16:41
もうponさんには足を向けて眠れないです。
log4j.appender.A1.file=../webapps/example/log/logfile.log として<CATLINA_HOME>/bin/startup.batからtomcatを起動したところ <CATLINA_HOME>/webapps/example/log/ にログが吐き出されました。 これでログに関しては形になりそうな気がします。 本当にありがとうございました。 |
1
