Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat没有为其内部日志记录获取Log4j配置_Java_Tomcat_Logging_Log4j - Fatal编程技术网

Java Tomcat没有为其内部日志记录获取Log4j配置

Java Tomcat没有为其内部日志记录获取Log4j配置,java,tomcat,logging,log4j,Java,Tomcat,Logging,Log4j,我正在尝试重新配置Tomcat7,以使用log4j进行内部日志记录 我遵循了Tomcat 7文档中的所有步骤: 它仍然没有使用Log4J,或者至少没有使用Log4J.properties文件中指定的配置 到目前为止,我所尝试的: 将必要的jar文件复制到Tomcat中提到的位置 文件 CATALINA_HOME,CATALINA_BASE环境变量不可用 目前添加了它们并将它们都设置为C:\Program Files\Apache Software 基金会\Tomcat 7.0 注意到log4J

我正在尝试重新配置Tomcat7,以使用log4j进行内部日志记录

我遵循了Tomcat 7文档中的所有步骤: 它仍然没有使用Log4J,或者至少没有使用Log4J.properties文件中指定的配置

到目前为止,我所尝试的:

  • 将必要的jar文件复制到Tomcat中提到的位置 文件

  • CATALINA_HOME
    CATALINA_BASE
    环境变量不可用 目前添加了它们并将它们都设置为
    C:\Program Files\Apache Software
    基金会\Tomcat 7.0

  • 注意到log4J属性文件引用了
    catalina.base
    不是这样创建的catalina\u base,而是catalina.base 和
    catalina.home
    环境变量,并将两者设置为
    C:\Program Files\Apache Software Foundation\Tomcat 7.0

  • 根据建议,我已删除Monitor Tomcat应用程序中的“自动”条目。

lib/log4j.properties

log4j.rootLogger = INFO, CATALINA

# Define all the appenders
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# Roll-over the log once per day
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Encoding = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

# Configure which loggers log to which appenders
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\
  INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\
  INFO, HOST-MANAGER

CATALINA_HOME默认为Tomcat的安装目录。如果愿意,可以设置它,但这不是必需的,尤其是在运行简单的单个实例时。此外,您只需要环境变量的下划线版本。“dot”版本是通过Java而不是shell引用的,Tomcat知道从哪里/如何获取这些信息

如果你能准确地说出你把哪些罐子放在了哪里,这会有所帮助——也许你遗漏了一些小东西,但如果你不知道自己到底做了什么,就不可能说出来。此外,您可能需要确保正确设置了环境变量。打开命令提示符并键入
echo%CATALINA\u HOME%
echo%CATALINA\u BASE%
。将输出与
dir
命令的输出与这些相同的目录进行比较。他们匹配吗?提示:检查波浪号(~)缩写


最后,您是否绝对确定它没有使用log4j?我这样问是因为您链接到的站点上的log4j.properties文件的行为应该与Tomcat的开箱即用日志相同。如果您只是复制了该文件,而没有更改任何内容,那么log4j实际上可能会工作。

我已经用配置文件更新了问题的详细信息。我希望看到的日志文件比在logs目录中看到的要多。因此,我假设它不起作用。我已经将文件放在文档中提到的适当目录中:“将log4j.jar和tomcat-juli-adapters.jar从“extras”放入$CATALINA_HOME/lib。将$CATALINA_HOME/bin/tomcat-juli.jar替换为“extras”中的tomcat-juli.jar。”但是在最新版本的log4j中没有log4j.jar。它的发行版里有十几个罐子。我已经把log4j-api-2.2.jar和log4j-core-2.2jar放好了,看了Ok,找到了。看起来log4j2.x与log4j1.x有很大的不同。我扔掉了2.x罐子,放了一个1.4罐子。它正在工作。谢谢