- PR -

JavaアプリでLog4jを使ってログを残したいです。

1
投稿者投稿内容
タンちゃん
会議室デビュー日: 2004/04/02
投稿数: 19
投稿日時: 2004-04-19 18:41
皆さんこんにちは

Log4Jに関してして質問がありま〜〜す〜〜


問題:ログファイルの生成ができません。

質問:ログファイルを生成する方法が知りたいです。

環境
 −OS:Windows 2000 professionnal sp4
 −JKD:1.4.2_04
 −媒体:Javaアプリ --> アプリのjreで実行(実行jarファイル)
 −Log4j:1.2.7
 −appender:DailyRollingFileAppender

現状
 −*Javaアプリとサーブレット間通信です。
  @JavaアプリからHttpでサーブレットを呼び出してソケットを開いて待つ。
  AサーブレットはJavaアプリからHttpで呼び出されてDBに問い合わせ。
  B問い合わせの結果をJavaアプリにソケットで返す。
  CJavaアプリはサーブレットからソケットで受け取った内容をログファイルに出力。
  D1日毎にログファイルを残す。-->DailyRollingFileAppender。

  MANIFESTファイルにclasspath設定でLog4j-1.2.7.jarファイルの場所を指定している。
  log4j.propertiesファイルは実行ファイルと同じ場所にある。

  ログファイル名称は:filelog
  バックアップファイル名称:file.2004-04-17

  log4j.propertiesファイル内容
  log4j.rootCategory=DEBUG, D
  log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
  log4j.appender.D.File=c:/log/file
  log4j.appender.D.DatePattern='.'yyyy-MM-dd
  log4j.appender.D.layout=org.apache.log4j.PatternLayout
  log4j.appender.D.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS} %F:%L(%M) - %m%n

  Javaアプリでログを書くソース

  public class File1 {
   public void writeFile() {
   Category cat = Category.getInstance(File1.class.getName());
   cat.debug("file document...");
}
  }

  不思議なのはこのJava実行ファイルの変わり簡単なJavaファイル(MyApp.java)を
  1個作ってテストして見ましたが、ちゃんとログファイルを書けました。

  テスト用のJavaファイル
  public class MyApp {
static Category cat = Category.getInstance(MyApp.class.getName());
public MyApp() {}
public static void main(String [] args) {
cat.debug("file document...");
}
}

  File1のcat(ログインスタンス)をクラス内で生成しても、メソット内で生成しても、ログを
  書けませんでした。

  Log4J-1.2.7.jarとlog4j.propertiesは同じ物を同じ場所で使ってますから、
  ソースを書けた時と書けなかった時の差はログを書くJavaアプリが違うだけなので、
  ログを書くソースの問題かな?と思いますが、何が問題化はわかりません。

  誰か解決方法あれば教えてください。
  よろしくお願いします。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-04-20 14:31
おそらくlog4j.propertiesを見つけられていないと思います。まずMANIFESTのクラスパス
設定にカレントディレクトリ(.)を入れてみてください。それで動かなかったら、log4j.propertiesをjarファイルに入れて動くかどうか試してみてはどうでしょうか。
1

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