当前位置: 首页 > 知识库问答 >
问题:

如何配置tomcat以使用log4j登录到不同的文件?

朱渝
2023-03-14

我正在尝试使用log4j在我的tomcat安装的不同文件中记录某些消息,但是尽管它会在我的rootLogger上记录,但它不会在我创建的单独文件上记录。

这是我的log4j.properies文件,其中我尝试使用的文件是dataflow_logging.log:

# Root logger option
log4j.rootLogger=INFO, stdout, mainlogger

# Direct dataflow specific messages to specific file.
log4j.logger.org.estat.nsiws.dataflows=INFO, dataflowlogger
log4j.appender.dataflowlogger=org.apache.log4j.RollingFileAppender
log4j.appender.dataflowlogger.File=${catalina.home}/logs/nsi/dataflow_logging.log
log4j.appender.dataflowlogger.MaxFileSize=10MB
log4j.appender.dataflowlogger.MaxBackupIndex=10
log4j.appender.dataflowlogger.layout=org.apache.log4j.PatternLayout
log4j.appender.dataflowlogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Disable dataflow log messages in root logger.
log4j.additivity.org.estat.nsiws.dataflows=false

# Direct main logging messages to standard output.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%p]: %m%n

# Also direct main logging messages to file.
log4j.appender.mainlogger=org.apache.log4j.RollingFileAppender
log4j.appender.mainlogger.File=${catalina.home}/logs/nsi/nsiws.log
log4j.appender.mainlogger.MaxFileSize=10MB
log4j.appender.mainlogger.MaxBackupIndex=10
log4j.appender.mainlogger.layout=org.apache.log4j.PatternLayout
log4j.appender.mainlogger.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%p]: %m%n

我的WebService的属性文件:

## This file contains properties for the Web Service

# The absolute path to the logs directory
log.directory=logs/nsi

# The log file prefix
log.file.prefix=nsiws_

# The log file suffix
log.file.suffix=.log

# The prefix of the temporary files created for the buffering of responses.
tempfile.buffer.prefix=ws_resp

# Enable logging dataflow access
log.df.file.activation=true

# The absolute path to the dataflow logs directory
log.df.file.directory=logs/nsi

# The dataflow log file prefix
log.df.file.name=dataflow_logging

# The dataflow log file maximum size
log.df.file.max.size=100MB

# The dataflow max backup file
log.df.file.max.backup=10

# The dataflow log file separator
log.df.file.separator=;

# The dataflow log file date pattern
log.df.date.pattern=%d{yyyy-MM-dd HH:mm:ss,SSS};%m%n

初始化数据流记录器的方法

private static Logger initDataflowLogger() {
        Logger dflogger = null;

        try {
            if (Boolean.parseBoolean(nsiProps.getProperty("log.df.file.activation"))) {
                dflogger = org.apache.log4j.Logger.getLogger("org.estat.nsiws.dataflows");
                dflogger.setLevel(Level.INFO);
                logger.debug("Initializing dataflow logging...");
            }
        } catch (Exception e) {
            logger.error(getInstance().getMessage("error.df.log.properties.not.set"));
        }

        return dflogger;
}

非常感谢你的帮助!

共有1个答案

马浩淼
2023-03-14

检查此表达式是否为真,以及是否正确设置了属性文件,以便项目可以从中读取。

Boolean.parseBoolean(nsiProps.getProperty("log.df.file.activation"))
 类似资料:
  • 问题内容: 我有一个普通的INFO级别应用日志。我需要的是另外记录所有错误级别的事件,以单独的错误日志。我正在使用这样的配置: 此配置仅记录错误。如果我首先放置信息级别记录器,则它将仅记录到一般附加程序,但错误记录器将无法工作。我想让他们两个都工作。 问题答案: 您需要做的是只有一个定义了INFO级别的定义,但是在您的两个追加器定义中,您需要相应地设置其阈值,例如 然后,将两个追加程序添加到记录器

  • 我有一个java web应用程序,它使用logback和slf4j进行日志记录。并且这个项目有一个依赖项jar(它是一个子项目)。这个依赖项jar使用org.apache.log4j.logger进行日志记录。所有日志必须放入一个日志文件中。我的问题是,我用jar文件中的代码记录的任何东西都没有写入日志文件。最初我有logback.xml。为了解决上述问题,我在web应用程序中添加了log4j.p

  • 对于一些人来说,这可能是一个非常简单的问题,但就我个人而言,Log4j配置非常困难,学习执行脑部手术可能没有那么困难。 我正试图让多个日志记录者登录到不同的文件。这是我的log4j中的内容。属性文件: 这是我的(非常简单的)Java应用程序用于测试配置: 我有两个问题: 有一个问题,我总是在

  • 我现在的问题是,如果我想完全禁用FileAppender,我不知道怎么做。如果我向FileAppender添加一个DenyAllFilter,它将阻止任何内容写入文件,但文件仍然被创建。如果从根记录器中删除FileAppender,则将Log4J写入stderr: 如果我将根级别设置为OFF,则我将自定义调试级别设置为仍然输出的各个记录器。 如果我将LoggerRepository级别设置为OFF

  • 问题内容: 我正在使用具有log4j.xml配置的第三方库-关闭日志记录的最佳方法是什么? 问题答案: 我认为所需要做的就是将阈值参数设置为OFF

  • 我们的Java应用程序在Logback上使用SLF4J来记录错误消息。在我们的回复中。xml,我们为错误日志定义了一个appender,以及一个指定包层次结构顶层的记录器。 我们正在将记录数据的功能添加到不同的日志文件中。我创建了一个类来处理这个日志记录,我向logback.xml添加了一个新的appender和一个新的logger。新的logger指定了我创建的新类的完全限定包名称(以及addt