Как настроить ведение журнала GlassFish для отображения миллисекунд в метках времени? - PullRequest
3 голосов
/ 08 февраля 2012

Я должен признать, что настройка ведения журнала меня немного расстроила: (..., поэтому я надеюсь, что кто-то здесь может помочь.

В основном мне нужно настроить ведение журнала на server.log, чтобы временные метки включали миллисекунды.

Дело в том, что похоже, что по умолчанию logging.properties настроен для этого, но фактические сообщения журнала не похожи на строку формата, которая является logging.properties, поэтому я не могу понять:

1) Что (файл) точно контролирует сообщения формата журнала в server.log 2) Что мне нужно изменить, предположительно GlassFish logging.properties, чтобы использовать формат в logging.properties, чтобы я видел миллисекунды в метках времени журнала?

Вот мой текущий 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

Вы заметите, что .logFormatDateFormat с форматом, но то, что я получаю в фактическом server.log, выглядит совершенно иначе, чем этот формат, например ::

Feb 5, 2012 2:30:44 PM com.sun.enterprise.v3.server.GFDomainXml
FINE: Total time to parse domain.xml: 516 milliseconds

Так что похоже на какой-то другой файл конфигурации, отличный от того, что у меня в GF logging.properties находится под контролем?

Спасибо, Jim

1 Ответ

1 голос
/ 11 июля 2014

Вывод выглядит как julSimpleFormatter по умолчанию.Шаблон преобразования преобразования Q составляет миллисекунды с начала эпохи.Измените формат SimpleFormatter , используя системное свойство:

-Djava.util.logging.SimpleFormatter.format="%1$tQ %2$s%n%4$s: %5$s%6$s%n"

или в logging.properties :

java.util.logging.SimpleFormatter.format=%1$tQ %2$s%n%4$s: %5$s%6$s%n

The 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

Все эти свойства задокументированы в формате метод и в java.util.Formatter класс.

...