如何配置GlassFish日志记录以显示时间戳中的毫秒数? [英] How to configure GlassFish logging to show milliseconds in timestamps?
问题描述
我不得不承认,配置日志记录让我有点困惑:(...,所以我希望这里的某个人可以帮忙。
基本上,我需要将日志记录配置为server.log,以便时间戳包含毫秒。
事情是,它看起来像为此配置了默认logging.properties,但实际日志消息看起来不像logging.properties的格式字符串,所以我想不出:
1)什么(文件)正是控制日志格式的消息在server.log中
2)我需要更改GlassFish logging.properties,才能使用logging.properties中的格式,以便我看到日志时间戳中的毫秒数?
以下是我当前的logging.properties:
#GlassFish logging.properties列表
#Thu 1月19日11:44:17东部时间2012年
#02-05-2012 - 尝试隔离审核许可/拒绝
com.sun.enterprise.security .auth.level = INFO
javax.enterprise.system.tools.admin.level = INFO
#handlers = java.util.logging.ConsoleHandler,com.sun.enterprise.server.logging.GFFileHandler
handlers = com.sun.enterprise.server.logging.GFFileHandler
#java.util.logging.ConsoleHandler.formatter = com.sun.enterprise.server.logging.UniformLogFormatter
com.sun.enterprise.server.logging.GFFileHandler.logFormatDateFormat = yyyy-MM-dd'T'HH\:mm \:ss.SSSZ
javax.enterprise.system.ssl.security.level = INFO
org.apache.jasper.level = INFO
com.sun.enterprise.server.logging.GFFileHandler.flushFrequency = 1
org.eclipse.persistence.session.level = INFO
javax.enterprise.system.tools.backup.level = INFO
javax.enterprise.resource.corba.level = INFO
javax.enterprise.resource.webcontainer.jsf.resource.level = INFO
javax.enterprise.system.core.classloading.level = INFO
javax.enterprise.resource.jta.level = INFO
java.util.logging.ConsoleHandler.level = FINER
com.sun.enterprise。 server.logging.GFFileHandler.file = $ {com.sun.aas.instanceRoot} /logs/server.log
javax.enterprise.system.webservices.saaj.level = INFO
java .util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
javax.enterprise.system.tools.deployment.level = INFO
javax.enterprise.system.container.ejb.level = INFO
javax.enterprise.system.core.transaction.level = INFO
org.apache.catalina.level = INFO
javax.enterprise.resource.webcontainer.jsf.lifecycle.level = INFO
com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes = 0
javax.enterprise.resource.webcontainer.jsf.config.level = INFO
javax.enterprise.system.container.ejb .mdb.level = INFO
javax.enterprise.resource.webcontainer.jsf.timing.level =信息
$ b $##02-05-2012 - 尝试隔离permit / deny $ b的审计$ b javax.enterprise.system.core.level = FINE
com.sun.enterprise.server.logging.GFFileHandler.rotationOnDateChange = false
org.apache.coyote。 level = INFO
ShoalLogger.level = INFO
javax.level = INFO
javax.enterprise.resource.webcontainer.jsf.taglib.level = INFO
java.util.logging.FileHandler.limit = 50000
javax.enterprise.system.webservices.rpc.level = INFO
javax.enterprise.resource.javamail.level = INFO
com.sun.enterprise.server.logging.GFFileHandler.logtoConsole = false
javax.enterprise.system.container.web.level = INFO
javax.enterprise.resource.webcontainer.jsf.facelets.level = INFO
javax.enterprise.resource.resourceadapter.level = INFO
javax.enterprise.system.util.level = INFO
com.sun.enterprise.server.logging.GFFileHandler.level = ALL
javax.org.glassfish.persistence.level = INFO
javax.enterprise.resource.webcontainer.jsf.context.level = INFO
javax.enterprise.resource.webcontainer.jsf.application.level = INFO
javax.enterprise.resource.jms .level = INFO
javax.enterprise.system.core.config.level = INFO
com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes = 2000000
o rg.jvnet.hk2.osgiadapter.level = INFO
javax.enterprise.system.level =信息
$ b $##02-05-2012 - 尝试隔离允许/拒绝$ b $的审计b javax.enterprise.system.core.security.level = INFO
javax.enterprise.system.container.cmp.level = INFO
java.util.logging.FileHandler.pattern =% h / java%u.log
com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging = false
javax.enterprise.resource.sqltrace.level = INFO
javax.enterprise.resource .webcontainer.jsf.renderkit.level =信息
javax.enterprise.system.webservices.registry.level =信息
javax.enterprise.system.core.selfmanagement.level =信息
#02-05-2012 - 尝试隔离允许/拒绝审计
com.sun.enterprise.security.Audit.level =信息
com.sun.enterprise.security.level =信息
com.sun.enterprise.server.logging.GFFileHandler.formatter = com.sun.enterprise.server.logging.UniformLogFormatter.level = FINE
com.sun.enterprise.server.logging。 GFFileHandler.maxHistoryFiles = 0
lo g4j.logger.org.hibernate.validator.util.Version = warn
java.util.logging.FileHandler.count = 1
#02-05-2012 - 尝试隔离审计允许/拒绝
com.sun.enterprise.security.auth.realm.level =信息
javax.enterprise.resource.webcontainer.jsf.managedbean.level =信息
org .glassfish.admingui.level = INFO
javax.enterprise.system.core.naming.level = INFO
javax.enterprise.resource.jdo.level = INFO
com.sun.enterprise。 server.logging.GFFileHandler.retainErrorsStasticsForHours = 0
security.level = FINE
LDAPRealm.level = FINE
您会注意到带格式的.logFormatDateFormat,但是我在实际的server.log中看到的格式与该格式完全不同,例如:
2012年2月5日下午2:30:44 com.sun.enterprise.v3.server.GFDomainXml
FINE:解析domain.xml的总时间:516毫秒
所以它看起来像其他一些配置文件,除了我在GF logging.properties中有控制权?
谢谢,
Jim
输出看起来像默认的julSimpleFormatter。自纪元开始以来, Q
转换转换模式为毫秒。更改 SimpleFormatter 的格式使用系统属性:
-Djava.util.logging.SimpleFormatter.format =%1 $ tQ%2 $ s% n%4 $ s:%5 $ s%6 $ s%n
a href =http://docs.oracle.com/javase/8/docs/api/java/util/logging/LogManager.html =nofollow noreferrer> logging.properties :
java.util.logging.SimpleFormatter.format =%1 $ tQ%2 $ s%n%4 $ s:%5 $ s %6 $ s%n
L
第二格内的转换模式为毫秒,格式为三位数字。可以使用系统属性修改默认模式:
-Djava.util.logging.SimpleFormatter.format =%1 $ ta%1 $ tb%1 $ td,%1 $ tY%1 $ tl:%1 $ tM:%1 $ tS。%1 $ tL%1 $ Tp%2 $ s%n%4 $ s:% 5 $ s%n
或在logging.properties中:
java.util.logging.SimpleFormatter.format =%1 $ ta%1 $ tb%1 $ td,%1 $ tY%1 $ tl:%1 $ tM:%1 $ tS。%1 $ tL%1 $ Tp%2 $ s%n%4 $ s:%5 $ s%n
所有这些属性都记录在 format 方法,并在 java.util.Formatter 类。
I have to admit, configuring logging has me a bit baffled :(..., so I hope that someone here can help.
Basically, I need to configure the logging to server.log so that the timestamps include milliseconds.
The thing is, it looks like the default logging.properties is configured for that, but the actual log messages don't look anything like the format string that is the logging.properties, so I can't figure out:
1) What (file) exactly is controlling the log format messages in server.log 2) What do I need to change in, presumably the GlassFish logging.properties, to use the format that is in logging.properties, so that I see milliseconds in the log timestamps?
Here's my current logging.properties:
#GlassFish logging.properties list
#Thu Jan 19 11:44:17 EST 2012
# 02-05-2012 - try to isolate auditing of permit/deny
com.sun.enterprise.security.auth.level=INFO
javax.enterprise.system.tools.admin.level=INFO
#handlers=java.util.logging.ConsoleHandler,com.sun.enterprise.server.logging.GFFileHandler
handlers=com.sun.enterprise.server.logging.GFFileHandler
#java.util.logging.ConsoleHandler.formatter=com.sun.enterprise.server.logging.UniformLogFormatter
com.sun.enterprise.server.logging.GFFileHandler.logFormatDateFormat=yyyy-MM-dd'T'HH\:mm\:ss.SSSZ
javax.enterprise.system.ssl.security.level=INFO
org.apache.jasper.level=INFO
com.sun.enterprise.server.logging.GFFileHandler.flushFrequency=1
org.eclipse.persistence.session.level=INFO
javax.enterprise.system.tools.backup.level=INFO
javax.enterprise.resource.corba.level=INFO
javax.enterprise.resource.webcontainer.jsf.resource.level=INFO
javax.enterprise.system.core.classloading.level=INFO
javax.enterprise.resource.jta.level=INFO
java.util.logging.ConsoleHandler.level=FINER
com.sun.enterprise.server.logging.GFFileHandler.file=${com.sun.aas.instanceRoot}/logs/server.log
javax.enterprise.system.webservices.saaj.level=INFO
java.util.logging.FileHandler.formatter=java.util.logging.XMLFormatter
javax.enterprise.system.tools.deployment.level=INFO
javax.enterprise.system.container.ejb.level=INFO
javax.enterprise.system.core.transaction.level=INFO
org.apache.catalina.level=INFO
javax.enterprise.resource.webcontainer.jsf.lifecycle.level=INFO
com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes=0
javax.enterprise.resource.webcontainer.jsf.config.level=INFO
javax.enterprise.system.container.ejb.mdb.level=INFO
javax.enterprise.resource.webcontainer.jsf.timing.level=INFO
# 02-05-2012 - try to isolate auditing of permit/deny
javax.enterprise.system.core.level=FINE
com.sun.enterprise.server.logging.GFFileHandler.rotationOnDateChange=false
org.apache.coyote.level=INFO
ShoalLogger.level=INFO
javax.level=INFO
javax.enterprise.resource.webcontainer.jsf.taglib.level=INFO
java.util.logging.FileHandler.limit=50000
javax.enterprise.system.webservices.rpc.level=INFO
javax.enterprise.resource.javamail.level=INFO
com.sun.enterprise.server.logging.GFFileHandler.logtoConsole=false
javax.enterprise.system.container.web.level=INFO
javax.enterprise.resource.webcontainer.jsf.facelets.level=INFO
javax.enterprise.resource.resourceadapter.level=INFO
javax.enterprise.system.util.level=INFO
com.sun.enterprise.server.logging.GFFileHandler.level=ALL
javax.org.glassfish.persistence.level=INFO
javax.enterprise.resource.webcontainer.jsf.context.level=INFO
javax.enterprise.resource.webcontainer.jsf.application.level=INFO
javax.enterprise.resource.jms.level=INFO
javax.enterprise.system.core.config.level=INFO
com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes=2000000
org.jvnet.hk2.osgiadapter.level=INFO
javax.enterprise.system.level=INFO
# 02-05-2012 - try to isolate auditing of permit/deny
javax.enterprise.system.core.security.level=INFO
javax.enterprise.system.container.cmp.level=INFO
java.util.logging.FileHandler.pattern=%h/java%u.log
com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging=false
javax.enterprise.resource.sqltrace.level=INFO
javax.enterprise.resource.webcontainer.jsf.renderkit.level=INFO
javax.enterprise.system.webservices.registry.level=INFO
javax.enterprise.system.core.selfmanagement.level=INFO
# 02-05-2012 - try to isolate auditing of permit/deny
com.sun.enterprise.security.Audit.level=INFO
com.sun.enterprise.security.level=INFO
com.sun.enterprise.server.logging.GFFileHandler.formatter=com.sun.enterprise.server.logging.UniformLogFormatter.level=FINE
com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles=0
log4j.logger.org.hibernate.validator.util.Version=warn
java.util.logging.FileHandler.count=1
# 02-05-2012 - try to isolate auditing of permit/deny
com.sun.enterprise.security.auth.realm.level=INFO
javax.enterprise.resource.webcontainer.jsf.managedbean.level=INFO
org.glassfish.admingui.level=INFO
javax.enterprise.system.core.naming.level=INFO
javax.enterprise.resource.jdo.level=INFO
com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours=0
security.level=FINE
LDAPRealm.level=FINE
You'll notice that the .logFormatDateFormat with a format, but what I get in the actual server.log looks totally different that that format, e.g.:
Feb 5, 2012 2:30:44 PM com.sun.enterprise.v3.server.GFDomainXml
FINE: Total time to parse domain.xml: 516 milliseconds
So it seems like some other configuraition file, other than what I have in the GF logging.properties is in control?
Thanks, Jim
The output looks like the default j.u.l.SimpleFormatter. The Q
conversion conversion pattern is milliseconds since the beginning of the epoch. Change the format of the SimpleFormatter using the system property:
-Djava.util.logging.SimpleFormatter.format="%1$tQ %2$s%n%4$s: %5$s%6$s%n"
or in the logging.properties:
java.util.logging.SimpleFormatter.format=%1$tQ %2$s%n%4$s: %5$s%6$s%n
The L
conversion pattern is millisecond within the second formatted as three digits. The default pattern can be modified using the system property as:
-Djava.util.logging.SimpleFormatter.format="%1$ta %1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS.%1$tL %1$Tp %2$s%n%4$s: %5$s%n"
or in the logging.properties:
java.util.logging.SimpleFormatter.format=%1$ta %1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS.%1$tL %1$Tp %2$s%n%4$s: %5$s%n
All of these properties are documented in the format method and in the java.util.Formatter class.
这篇关于如何配置GlassFish日志记录以显示时间戳中的毫秒数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!