在 Tomcat 中使用具有不同 Appender 的 log4j
Using log4j in Tomcat with different Appenders
我已将 Tomcat 配置为使用 log4j 记录器,如下所述:
https://tomcat.apache.org/tomcat-7.0-doc/logging.html
除 webbapp class 的日志记录机制外,一切正常。由于某种原因,它没有记录任何内容....
我遇到以下警告:
log4j:WARN No appenders could be found for logger (WEBAPP).
log4j:WARN Please initialize the log4j system properly.
我的 log4j.properies(位于 $CATALINA_BASE/lib
)看起来像这样:
log4j.rootLogger = INFO,CATALINA,LOCALHOST,CONSOLE,WEBAPP
# 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
log4j.appender.WEBAPP=org.apache.log4j.RollingFileAppender
log4j.appender.WEBAPP.File=${catalina.base}/logs/actions
log4j.appender.WEBAPP.MaxFileSize=4MB
log4j.appender.WEBAPP.MaxBackupIndex=9
log4j.appender.WEBAPP.Append = true
log4j.appender.WEBAPP.Encoding=UTF-8
log4j.appender.WEBAPP.layout=org.apache.log4j.PatternLayout
log4j.appender.WEBAPP.layout.ConversionPattern=%d{dd.MM.yyyy - HH:mm:ss} [[%5p] %c [%t]] %m%n
log4j.category.WEBAPP=INFO
log4j.additivity.WEBAPP=false
# 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
我想将 webapp 中发生的操作写入名为“actions”的特殊日志文件中,但甚至没有创建日志文件。 Web 应用程序在 tomcat 上 运行,除了日志记录外,它运行良好。
在应该记录到日志文件的 webapp 的 classes 中,有这样初始化的记录器:
private static final Logger LOGGER = LoggerFactory.getLogger("WEBAPP");
我认为这就足够了,但它不起作用...
任何建议都很好,在此先感谢! :-)
解决了!
我刚刚将 WEBAPP 添加到 log4j.category.WEBAPP=INFO
。与昏迷分开,现在终于可以工作了....
所以,这样做
log4j.category.WEBAPP=INFO, WEBAPP
而不是这个
log4j.category.WEBAPP=INFO
它终于开始工作了。 :-)
我已将 Tomcat 配置为使用 log4j 记录器,如下所述: https://tomcat.apache.org/tomcat-7.0-doc/logging.html
除 webbapp class 的日志记录机制外,一切正常。由于某种原因,它没有记录任何内容....
我遇到以下警告:
log4j:WARN No appenders could be found for logger (WEBAPP).
log4j:WARN Please initialize the log4j system properly.
我的 log4j.properies(位于 $CATALINA_BASE/lib
)看起来像这样:
log4j.rootLogger = INFO,CATALINA,LOCALHOST,CONSOLE,WEBAPP
# 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
log4j.appender.WEBAPP=org.apache.log4j.RollingFileAppender
log4j.appender.WEBAPP.File=${catalina.base}/logs/actions
log4j.appender.WEBAPP.MaxFileSize=4MB
log4j.appender.WEBAPP.MaxBackupIndex=9
log4j.appender.WEBAPP.Append = true
log4j.appender.WEBAPP.Encoding=UTF-8
log4j.appender.WEBAPP.layout=org.apache.log4j.PatternLayout
log4j.appender.WEBAPP.layout.ConversionPattern=%d{dd.MM.yyyy - HH:mm:ss} [[%5p] %c [%t]] %m%n
log4j.category.WEBAPP=INFO
log4j.additivity.WEBAPP=false
# 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
我想将 webapp 中发生的操作写入名为“actions”的特殊日志文件中,但甚至没有创建日志文件。 Web 应用程序在 tomcat 上 运行,除了日志记录外,它运行良好。 在应该记录到日志文件的 webapp 的 classes 中,有这样初始化的记录器:
private static final Logger LOGGER = LoggerFactory.getLogger("WEBAPP");
我认为这就足够了,但它不起作用...
任何建议都很好,在此先感谢! :-)
解决了!
我刚刚将 WEBAPP 添加到 log4j.category.WEBAPP=INFO
。与昏迷分开,现在终于可以工作了....
所以,这样做
log4j.category.WEBAPP=INFO, WEBAPP
而不是这个
log4j.category.WEBAPP=INFO
它终于开始工作了。 :-)