0

I'm using

private static final java.util.logging.Logger LOGGER = java.util.logging.Logger.getLogger(MyClass.class.getName());
LOGGER.log(Level.INFO, "log message);

style to log in my java web application.

I start tomcat 8.0.21 from startup.bat (project requirement) on windows 10. I can see all the logging in console window, including java.util.logging.Logger.log logging. But I can't see any java.util.logging.Logger.log logging in tomcat standard log files - %tomcat%/logs/catalina.2018-07-31.log and localhost.2018-07-31.log.

I can see all the tomcat logging, but not my web application logging. I need to track some problems with my web application on client machines in production, because I can't model such problems on my local computer.

I need to see my logging along with other tomcat logging in %tomcat%/logs/catalina.<current_date>.log. It would be better to to use tomcat logging configuration for all the projects. But using a per-project configuration is acceptable too. I have Googled the whole day, but all the recipes I found did not work for me.

Please don't offer to use log4j. Using java.util.logging is a project requirement. Here is my %tomcat%/conf/logging.properties file

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
jrswgtr
  • 2,287
  • 8
  • 23
  • 49

1 Answers1

0

From your logging.properties it looks like you are try to set the level for package of loggers:

mycompany.package1.level = ALL
mycompany.package2.level = ALL
utils.jaxws.level = ALL

You can only set the level of a logger if it has been created in code. Specify all of the exact logger names or in code you have to create and hold a strong reference to the mycompany.package1 and mycompany.package2 loggers.

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());
jmehrens
  • 10,580
  • 1
  • 38
  • 47
  • Package logging configuration is working OK, I just have double checked. Package prefixes I use in logging.properties apply to all the project packages and logging accordingly. I can see that logs in console window. My problem is I can't see same logs in log files. – Iurii Savchenko Aug 01 '18 at 05:57