Modifying java.util.logging.SimpleFormatter format property under Tomcat

后端 未结 5 2009
孤街浪徒
孤街浪徒 2020-12-15 21:04

I am using Tomcat 7.0.28, running under OpenJDK 1.7 on Ubuntu, and am trying to modify the formatting string used by java.util.logging.SimpleFormatter. According to the Jav

相关标签:
5条回答
  • 2020-12-15 21:28

    Don't know if this will solve your problem, but it may be worth a try. I was seeing the same behavior, although in my case I was doing the logging setup programmatically instead of using properties. Turns out that the property value for java.util.logging.SimpleFormatter.format needs to be set BEFORE constructing the (in my case) FileHandler. I was setting it after constructing the FileHandler, but before constructing SimpleFormatter. I wonder if, in your properties file, defining java.util.logging.SimpleFormatter.format BEFORE defining any of the Handler properties will solve the problem.

    0 讨论(0)
  • 2020-12-15 21:34

    java.util.logging.SimpleFormatter.format is indeed documented to be settable in either logging.properties -which does not work for me either- or as a command line argument (java option).

    The command line argument appears to work for me. Because the $JAVA_OPTS variable is going through so much tampering and ends up in eval, this is how I solved it (on Debian, java 1.7.0_07, apache-tomcat-7.0.30)

    $CATALINA_HOME/bin/catalina.sh (line 230):

    JAVA_OPTS="$JAVA_OPTS \"-Djava.util.logging.SimpleFormatter.format=%1\\\$tY-%1\\\$tm-%1\\\$td %1\\\$tH:%1\\\$tM:%1\\\$tS.%1\\\$tL %4\\\$s %3\\\$s %5\\\$s%6\\\$s%n\""
    
    0 讨论(0)
  • 2020-12-15 21:40

    Thanks to info in the bug report pointed out by nolan6000 I finally got this working with tomcat-juli.

    Instead of:

    java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
    

    it has to be:

    1catalina.java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
    
    0 讨论(0)
  • 2020-12-15 21:43

    You may be witnessing this bug.

    The bug is fixed from Tomcat version 7.0.41 onwards as well as 6.0.38 onwards.

    0 讨论(0)
  • 2020-12-15 21:44

    Using a formatter pattern in default Tomcat 8 JULI logger needs this, you may put arguments to a global $tomcat/conf/logging.properties or webapp specific $tomcat/webapps/myapp/WEB-INF/classes/logging.properties file.

    This is my global file where have also disabled a manager-webapp logging files. Logging line is:
    2015-09-23 17:32:11 INFO org.apache.catalina.startup.Catalina Server startup in 1028 ms

    #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, 2localhost.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
    
    .handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
    
    # formatter attributes = date, source, logger, level, message, thrown
    java.util.logging.SimpleFormatter.format = %1$tF %1$tT %4$s %3$s %5$s%6$s%n
    
    1catalina.org.apache.juli.AsyncFileHandler.level = FINE
    1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
    1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
    1catalina.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
    #1catalina.org.apache.juli.AsyncFileHandler.bufferSize = 2048
    
    2localhost.org.apache.juli.AsyncFileHandler.level = FINE
    2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
    2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
    2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
    2localhost.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
    #2localhost.org.apache.juli.AsyncFileHandler.bufferSize = 2048
    
    #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
    java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
    
    
    ############################################################
    # 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 lines
    #org.apache.jasper.compiler.TldLocationsCache.level = FINE
    #org.apache.jasper.servlet.TldScanner.level=FINE
    
    0 讨论(0)
提交回复
热议问题