【发布时间】:2014-09-18 19:48:04
【问题描述】:
以前在我们的开发环境中,我们的 JBoss 日志只会在日志条目的第一行打印 log4j 标头信息,其中该条目是包含多行的文本字符串(例如,打印长 SQL 语句) .
在过去 6 个月的某个时间点,这种情况发生了变化,现在在每一行打印该信息,这使得读取实际日志成为一场噩梦,并阻止我们从日志中复制/粘贴,因为所有标题文本。请注意,对于可能跨越多行的其他(系统生成的)事物,这不会发生在每一行。
例如,这是我们的日志当前对于 INFO 事件的样子:
14:36:14,992 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeplo
ymentUnitProcessor] (MSC service thread 1-1) JNDI bindings for session bean name
d ConfigurationEJB in deployment unit subdeployment "JassEJB3.jar" of deployment
"jassejb.ear" are as follows:
java:global/jassejb/JassEJB3/ConfigurationEJB!jass.response.ejb3.active.
ConfigurationLocal
java:app/JassEJB3/ConfigurationEJB!jass.response.ejb3.active.Configurati
onLocal
java:module/ConfigurationEJB!jass.response.ejb3.active.ConfigurationLoca
l
java:global/jassejb/JassEJB3/ConfigurationEJB!jass.response.ejb3.active.
ConfigurationRemote
java:app/JassEJB3/ConfigurationEJB!jass.response.ejb3.active.Configurati
onRemote
java:module/ConfigurationEJB!jass.response.ejb3.active.ConfigurationRemo
te
java:jboss/exported/jassejb/JassEJB3/ConfigurationEJB!jass.response.ejb3
.active.ConfigurationRemote
这(上图)是我们希望它如何查找我们通过代码发送的日志(即打印堆栈跟踪、SQL 语句等)。为了比较,这是发送到日志的堆栈跟踪的样子:
14:36:57,142 INFO [stdout] (EJB default - 2520) -------- BEGIN OF STACK TRACE -
--------
14:36:57,142 ERROR [stderr] (EJB default - 2520) java.sql.SQLRecoverableExceptio
n: Closed Connection
14:36:57,143 ERROR [stderr] (EJB default - 2520) at oracle.jdbc.driver.Ph
ysicalConnection.prepareCall(PhysicalConnection.java:3416)
14:36:57,144 ERROR [stderr] (EJB default - 2520) at org.jboss.jca.adapter
s.jdbc.BaseWrapperManagedConnection.doPrepareCall(BaseWrapperManagedConnection.j
ava:740)
14:36:57,144 ERROR [stderr] (EJB default - 2520) at org.jboss.jca.adapter
s.jdbc.BaseWrapperManagedConnection.prepareCall(BaseWrapperManagedConnection.jav
a:726)
14:36:57,144 ERROR [stderr] (EJB default - 2520) at org.jboss.jca.adapter
s.jdbc.WrappedConnection.prepareCall(WrappedConnection.java:597)
有谁知道我们如何禁止记录器在每一行上插入“14:36:57,144 ERROR [stderr](EJB 默认 - 2520”)?看起来它正在这样做,因为每一行都是单独发送的。我感觉 SyslogAppender 以某种方式导致这种情况发生(拆分字符串),但我不知道如何补救这种情况。
谁能提供任何见解?谢谢!
【问题讨论】:
标签: design-patterns logging jboss log4j