我正在使用
private static final java.util.logging.Logger LOGGER = java.util.logging.Logger.getLogger(MyClass.class.getName());
LOGGER.log(Level.INFO, "log message);
样式来登录我的java web应用程序。
我在Windows10上从startup.bat (项目需求)启动Tomcat8.0.21。我可以在控制台窗口中看到所有日志记录,包括java.util.logging.Logger.log
日志记录。但我在tomcat标准日志文件%tomcat%/logs/catalina.2018-07-31.log
和localhost.2018-07-31.log
中看不到任何java.util.logging.Logger.log
日志记录。
我可以看到所有的tomcat日志,但不能看到我的web应用程序日志。我需要在生产环境中的客户机上跟踪我的web应用程序的一些问题,因为我不能在本地计算机上对这些问题进行建模。
我需要在%tomcat%/logs/catalina.<current_date>.log
中查看我的日志和其他tomcat日志。最好对所有项目使用tomcat日志记录配置。但是使用每个项目的配置也是可以接受的。我用谷歌搜索了一整天,但我找到的所有食谱对我都不起作用。
请不要提供使用log4j
。使用java.util.logging
是一个项目需求。这是我的%tomcat%/conf/logging.properties
文件
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
.level = INFO
1catalina.org.apache.juli.AsyncFileHandler.level = ALL
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
2localhost.org.apache.juli.AsyncFileHandler.level = ALL
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
3manager.org.apache.juli.AsyncFileHandler.level = ALL
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
4host-manager.org.apache.juli.AsyncFileHandler.level = ALL
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = ALL
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = ALL
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = ALL
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
mycompany.package1.level = ALL
mycompany.package2.level = ALL
utils.jaxws.level = ALL
发布于 2018-08-01 05:12:04
从你的logging.properties来看,你似乎正在尝试设置记录器包的级别:
mycompany.package1.level = ALL
mycompany.package2.level = ALL
utils.jaxws.level = ALL
只有在指定了所有确切的记录器名称,或者在代码中必须创建并保持对mycompany.package1
和mycompany.package2
记录器的强引用时,才能设置记录器的级别。
private static final Object loggerParent = java.util.logging.Logger.getLogger("mycompany.package1");
private static final java.util.logging.Logger LOGGER = java.util.logging.Logger.getLogger(MyClass.class.getName());
https://stackoverflow.com/questions/51618099
复制相似问题