如何配置GlassFish日志记录以显示时间戳中的毫秒数? [英] How to configure GlassFish logging to show milliseconds in timestamps?

查看:113
本文介绍了如何配置GlassFish日志记录以显示时间戳中的毫秒数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不得不承认,配置日志记录让我有点困惑:(...,所以我希望这里的某个人可以帮忙。

基本上,我需要将日志记录配置为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆