2

Javaプロジェクトでログを生成するためにlog4j.propertiesファイルを使用しています。カスタムログステートメントとそのステートメントに対応するログファイルのみが必要です。私のログファイルは次のようなものです。

log4j.logger.org.apache.axis.enterprise=DEBUG, stdout,Rollfile
log4j.rootLogger=off
log4j.logger.com.gridsense.server.automode=Rollfile,stdout
log4j.appender.Rollfile=org.apache.log4j.RollingFileAppender
log4j.appender.Rollfile.Threshold=DEBUG
log4j.appender.Rollfile.File=D:/javaProjects/AutomodeGS_Prachi/AutoGS.log
log4j.appender.Rollfile.MaxFileSize=2MB
log4j.appender.Rollfile.layout=org.apache.log4j.PatternLayout
log4j.appender.Rollfile.layout.ConversionPattern=[%t] %-5p %c %d{dd/MM/yyyy HH:mm:ss}  – %m%n

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x – %m%n

しかし、プログラムを実行すると、ログステートメントがコンソールに出力され、空のログファイルが作成されます。何が問題なのかわかりませんが、ログファイルが空になっているのはなぜですか?私のクラスでは、私はステートメントを書きました

private static  Logger logger = Logger.getLogger(Driver.class);

インポートしています

import org.apache.log4j.Logger;

実際、「Log4Jファイルが空です」に関連する質問に対する解決策を読み、コードにいくつかの変更を加えました。importステートメントをに変更しました

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

そして私のクラスでは:

static Log   logger = LogFactory.getLog(Driver.class);

それでも私は同じ問題に遭遇します。どんな提案も役に立ちます。

4

3 に答える 3

1

交換

log4j.rootLogger=off

log4j.rootLogger=DEBUG,stdout,Rollfile
于 2013-03-20T09:57:17.293 に答える
1

以前のコードでは問題はありませんでしたが、コードが log4j API に関連付けられていないため、新しいコードの方が優れています。

アプリケーションがこのログ ファイルを読み込んでいますか?

ロールファイルは、パッケージ com.gridsense.server.automode の下のクラスからのみログ メッセージを取得します。いくつかのログメッセージが実行されていますか?

通常、私はいつも使用しています

log4j.rootLogger=DEBUG, stdout,Rollfile

以下の代わりに、競合があるかどうかはわかりません。

log4j.logger.org.apache.axis.enterprise=DEBUG, stdout,Rollfile
log4j.rootLogger=off
于 2013-03-20T09:58:21.720 に答える
-1

解決策は非常に簡単です。 「Log4j.properties」ファイルをメイン プロジェクト ディレクトリに移動します

  • 内側のパッケージまたはフォルダーの下に Log4j.properties ファイルがある場合は、それをメイン プロジェクト フォルダーに移動します。

プロパティ ファイルの構造

于 2018-07-13T13:30:06.303 に答える