3

Tomcat webapp で少しログを記録するために log4j を使用したいと考えています。たとえば、ユーザーの情報が要求されたときにアクティビティをログに記録する必要があるデータ アクセス クラスがあります。ファイル ハンドラーとコンソール ハンドラーをルートロガーに追加し、コンソールで正しいログ メッセージを完全に表示できますが、残念ながら、指定されたファイルにはありません。

私のコードは次のとおりです。

imports...

public class UserDao {
    private final Logger logger = Logger.getRootLogger();

    public UserDao() {
        FileAppender fa = new FileAppender();
        fa.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n"));
        fa.setName("UserDaoFileAppender");
        fa.setFile("UserDao.log");
        fa.setThreshold(Level.INFO);
        fa.setAppend(true);
        fa.activateOptions();
        logger.addAppender(fa);

        ConsoleAppender ca = new ConsoleAppender();
        ca.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n"));
        ca.setThreshold(Level.WARN);
        ca.activateOptions();
        logger.addAppender(ca);

        logger.warn("Test warning");
        logger.error("Test error");
        logger.info("Test info");
        logger.debug("test debug");
    }

    // Rest of the class.

}

アペンダー構成を設定するプロパティファイルの方法を使用しようとしましたが、機能させることができませんでした。ここで何人かの人々が提案しているように、私はそれを WEB-INF/classes フォルダーと src-root の両方に入れてみました。

4

2 に答える 2

0

FileAppender に引数のないコンストラクターを使用しています。少なくとも 2 つの引数を持つコンストラクターを使用してください。

FileAppender fa = new FileAppender();
fa.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n"));

これらの 2 行を以下に置き換えます。

FileAppender fa = new FileAppender(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n"), "path of the log file");
于 2012-10-07T15:21:26.213 に答える
0

作業サンプルがあります(プロパティファイルに問題がない場合)。log4j.properties を WEB-INF フォルダーにコピーする必要があります。

log4j.rootLogger=INFO, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${billing.root}/WEB-INF/billing.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
于 2012-10-07T16:03:39.557 に答える