2

我正在使用 OtrosLogViewer 分析我的 glassfish 日志文件。但似乎软件无法正常工作。我认为我的模式是错误的。

type=log4j
customLevels=SEVERE=FATAL,WARNING=WARN,CONFIG=INFO,FINE=DEBUG,FINER=TRACE,FINEST=TRACE,INFO=INFO
pattern=[#|TIMESTAMP|LEVEL|PROP(ProductName-Version)|LOGGER|_ThreadID=PROP(ThreadID);_ThreadName=THREAD;PROP(Properties);|MESSAGE|#]
dateFormat=yyyy-MM-dd'T'HH:mm:ss.SSSZ
name=GlassFish logger
charset=UTF-8

这是我的服务器日志示例(Glassfish 4.0):

[2013-10-13T17:36:03.841+0700] [glassfish 4.0] [WARNING] [endpoint.activation.failure] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.inbound] [tid: _ThreadID=34 _ThreadName=admin-listener(1)] [timeMillis: 1381660563841] [levelValue: 900] [[
RAR8501: Exception during endpoint activation for ra [ jmsra ], activationSpecClass [ com.sun.messaging.jms.ra.ActivationSpec ] : javax.resource.ResourceException: MQRA:EC:Invalid destinationLookup jms/NewMessage configured in ActivationSpec of MDB for no JNDI name found]]

[2013-10-13T17:36:03.841+0700] [glassfish 4.0] [SEVERE] [containers.mdb.create_container_exception] [javax.enterprise.system.container.ejb.mdb.org.glassfish.ejb.mdb] [tid: _ThreadID=34 _ThreadName=admin-listener(1)] [timeMillis: 1381660563841] [levelValue: 1000] [[
MDB00017: [NewMessage]: Exception in creating message-driven bean container: [java.lang.Exception]]]

如何修改我的模式以使其工作?我对 OtrosLogViewer 的模式感到很困惑。

谢谢。

4

2 回答 2

7

您可以使用这些格式来解析您的问题的日志:

type=log4j
pattern=[TIMESTAMP] [PROP(server)] [CLASS] [LEVEL] [PROP(someClass)] [tid: _ThreadID=PROP(ThreadID) _ThreadName=THREAD] [timeMillis: PROP(timeMilis)] [levelValue: PROP(levelValue)] MESSAGE
name=My glassfish format
dateFormat=yyyy-MM-dd'T'HH:mm:sZ

我对您的日志有以下假设:

[2013-10-13T17:36:03.841+0700] - timestamp
[glassfish 4.0] - PROP(server)
[WARNING]  - Level
[endpoint.activation.failure] - Class
[javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.inbound] PROP(someClass)
[tid: _ThreadID=34 _ThreadName=admin-listener(1)] - Thread info
[timeMillis: 1381660563841]  - PROP(timeMillis)
[levelValue: 900] - PROP(levelValue)
[[RAR8501: Exception during endpoint activation for ra [ jmsra ], activationSpecClass [ com.sun.messaging.jms.ra.ActivationSpec ] : javax.resource.ResourceException: MQRA:EC:Invalid destinationLookup jms/NewMessage configured in ActivationSpec of MDB for no JNDI name found]] - Message

OtrosLogViewer也有 Log4j 模式解析器编辑器。您可以在菜单工具中找到它。

于 2013-12-02T09:38:15.207 回答
1

Glassfish 服务器日志使用 Java Util Logging (JUL)。OtrosLogViewer 可以读取 JUL 使用 SimpleFormatter 或 XMLFormatter 生成的日志文件——这两者都不是我的强项。也就是说,我可以向您展示如何使用 OtrosLogViewer 同时使其识别Log4j PatternLayout

给定以下 log4j.properties 文件

log4j.rootLogger=debug, logfile
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.MaxFileSize=20000KB
log4j.appender.logfile.MaxBackupIndex=3
log4j.appender.logfile.File=logs/MyAppLog.log
log4j.appender.logfile.append=false
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.conversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %C %M - %m%n

将以下 MyLog4jPattern.pattern 放入文件夹 olv-folder\plugins\logimporters

type=log4j
pattern=TIMESTAMP LEVEL (FILE:LINE) CLASS METHOD - MESSAGE
dateFormat=MM-dd@HH:mm:ss
name="My Custom pattern: "%d{ISO8601} %-5p (%13F:%L) %C %M - %m%n"
charset=UTF-8

然后重新启动 OtrosLogViewer。使用标记为“我的自定义模式:...”的按钮打开或拖尾您的日志文件

我希望这有帮助!

于 2013-12-02T04:57:43.727 回答