java - 为什么 catalina.out 为空

标签 java tomcat8 java.util.logging logrotate catalina.out

我的 logrotate 工作正常,唯一的问题是当日志文件保存时,文件名末尾带有日期,例如:catalina.out-20180926。但没有任何内容记录到 catalina.out。

一切都归root所有,tomcat在root下运行。我已将 tomcat 作为服务重新启动,并且它重新启动正常,创建重新启动日志的新日志文件,然后在我再次重新启动服务之前不会记录任何内容。

我的日志记录属性文件如下所示;

handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler

# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE

# To see debug messages in TldLocationsCache, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level = FINE

有什么想法吗?

最佳答案

从 SysV 初始化脚本移至 Systemd 服务单元后,Tomcat 标准输出和错误流不再记录到 catalina.out。如果您需要查看 stdout 和 stderr 日志,可以在日志中找到它们:

journalctl -u tomcat

如果你想跟踪Tomcat stdout+stderr日志,可以使用:

journalctl -f -u tomcat

查看最后 100 行:

journalctl -n100 -u tomcat

有关详细信息,请参阅 systemd 和 Journald 文档。

关于java - 为什么 catalina.out 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516214/

相关文章:

java - Android Header Title 设置居中位置

java-8 - 未爆炸的 war 导致 Apache Tomcat 8.0.41 中的部署失败

java - 是否可以以编程方式覆盖 java.util.logging 属性文件中设置的值?

java - 如何在java日志记录属性文件中配置我自己的格式化程序

java - 如何连接其他机器安装Elasticsearch服务器?

java - Java SPI-选择单个实现

java - Spring-boot @RequestParam 注解将请求中的 UTC 时区转换为本地时区

apache - 即使没有设置用户和密码也无法登录 Tomcat 8.5.24 Manager

java-8 - 为什么更改托管 bean 的定义会导致未调用构造函数?

java - JUL 日志记录 - 消息上的实例前缀