2012-02-08 1 views
3

я должен признать, что настройка логирования меня немного сбит с толку: (..., так что я надеюсь, что кто-то здесь может помочьКак настроить регистрацию GlassFish для отображения миллисекунд в метках времени?

принципе, мне нужно настроить ведение журнала для Server.log тем, чтобы временные метки включают в себя. миллисекунды.

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

1) Что (файл) точно контролирует сообщения формата журнала в server.log 2) Что мне нужно изменить, предположительно, GlassFish l ogging.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, находится под контролем?

Спасибо, Джим

+0

Этот вывод выглядит как по умолчанию j.u.l.SimpleFormatter. Возможно ли, что ConsoleHandler по умолчанию вместо этого ссылается на server.log? Вы пытались установить java.util.logging.ConsoleHandler.level = OFF и посмотреть, не напечатано ли в журнале сервера ничего? – jmehrens

ответ

1

Результат выглядит по умолчанию j.u.l.SimpleFormatter. Преобразование конверсии 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 

Схема преобразования 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 класса.

+0

Я не могу найти ссылку на '% 1tQ' в JavaDoc. Также это печатает текущее время в миллисекундах. Как получить эквивалент «% S» (0-999) в формате даты/времени? –

+0

@AaronDigulla использует шаблон «L». Ссылка SimpleDormatter JavaDocs на java.util.Formatter, но я также обновил свой ответ, чтобы включить эту ссылку. – jmehrens