I have changed logging.properties file in conf directory so that i have different log files for different web apps. This is what i have changed/added to that file:
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler, 6nomad.org.apache.juli.FileHandler ... 6nomad.org.apache.juli.FileHandler.level = FINE 6nomad.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 6nomad.org.apache.juli.FileHandler.formatter = biz.zviz.util.logging.NomadLogFormatter 6nomad.org.apache.juli.FileHandler.prefix = nomad. ... org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Nomad].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Nomad].handlers = 6nomad.org.apache.juli.FileHandler Everything works O.K. if I do not set my custom formatter or if I set java.util.logging.SimpleFormatter. But with custom formatter I loose all LogRecords from /Nomad. My formatter implementation is: public class NomadLogFormatter extends java.util.logging.Formatter { public NomadLogFormatter() { super(); } @Override public String format(LogRecord logRec) { long time = logRec.getMillis(); String msg = logRec.getMessage() == null ? "no message" : logRec.getMessage(); return String.format(FORMAT_STRING, time, msg); } public static final String FORMAT_STRING = "%1$tF %1$tT - %2$s%n"; } I tried to put this class to common/classes, i have tried to put NomadLogFormatter.jar to common/lib, also to include it to my web app, but I always get this exception as first message when do restart Tomcat: java.util.logging.ErrorManager: 4 java.lang.NullPointerException at org.apache.juli.FileHandler.open(FileHandler.java:257) at org.apache.juli.FileHandler.<init>(FileHandler.java:50) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at java.lang.Class.newInstance0(Class.java:350) at java.lang.Class.newInstance(Class.java:303) at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:396) at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:341) at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:236) at java.util.logging.LogManager$2.run(LogManager.java:254) at java.security.AccessController.doPrivileged(Native Method) at java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:252) at java.util.logging.LogManager.getLogManager(LogManager.java:235) at java.util.logging.Logger.<init>(Logger.java:201) at java.util.logging.LogManager$RootLogger.<init>(LogManager.java:969) at java.util.logging.LogManager$RootLogger.<init>(LogManager.java:966) at java.util.logging.LogManager$1.run(LogManager.java:179) at java.security.AccessController.doPrivileged(Native Method) at java.util.logging.LogManager.<clinit>(LogManager.java:156) at java.util.logging.Logger.getLogger(Logger.java:254) at org.apache.commons.logging.impl.Jdk14Logger.getLogger(Jdk14Logger.java:152) at org.apache.commons.logging.impl.Jdk14Logger.<init>(Jdk14Logger.java:53) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351) at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:53) What is the problem? Please help me.