我有一个java web应用程序,我把它部署到了tomcat上。我使用java.util.logging进行日志记录。下面是logging.properties文件。
handlers=java.util.logging.FileHandler,org.apache.juli.FileHandler,java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.pattern =%h/DemoWebAppLogs/DemoWebApp%u%g.log
java.util.logging.FileHandler.append=true
java.util.logging.FileHandler.limit = 5000
java.util.logging.FileHandler.count = 5000
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
这是我的代码的GitHub链接。
当我在eclipse上调试/运行应用程序时,控制台和文件日志记录都工作正常。
在C:/Users/User中创建DemoWebAppLogs文件夹,并将DemoWebApp00.log和
创建DemoWebApp00.log.lck文件。
但是当我在tomcat上部署应用程序时,文件日志记录不起作用(控制台日志记录在起作用)。只创建了DemoWebAppLogs文件夹,但没有.log或.lck文件。
我使用Eclipse导出了DempWebApp.war文件,并将该文件放在 Catalina _HOME/webapps中。我使用的是tomcat 9.0.55。
1条答案
按热度按时间k4aesqcs1#
在您的代码中,您不需要调用Tomcat下的LogManager.readConfiguration。
JULI在默认情况下是启用的,除了常规的全局java.util.logging配置之外,它还支持每个类加载器的配置。这意味着日志可以在以下层配置:
只需将www.example.com放在logging.propertiesWEB-INF/classes中即可。
但是当我在tomcat上部署应用程序时,文件日志记录不起作用(控制台日志记录在起作用)。只创建了DemoWebAppLogs文件夹,但没有.log或.lck文件。
FileHandler从未开启,因为它未被呼叫、路径指向其他位置,或开启失败。
根记录程序可以延迟加载处理程序,直到它看到日志消息为止。请尝试将级别设置为“全部”。检查Tomcat的所有日志文件,包括Tomcat进程的任何控制台输出。如果无法加载事件记录,则这些日志中应该会显示错误消息。