I can't figure out how to create a Jira ticket in PAXLOGGING. I made an
account on Atlassian, but it says I don't have access to Jira on
ops4j1.jira.com.
So, with Pax Logging *1.10.2* (using pax-logging-api and
pax-logging-log4j2), I *can* print a stack trace with:
org.apache.logging.log4j.Logger logger = org.apache.logging.log4j.LogManager
.getLogger();
try
{
// Some code that throws exception.
}
catch (Exception ex)
{
logger.error("Some message", ex); // prints stack trace correctly.
}
With Pax Logging *1.10.4* (also using pax-logging-api and
pax-logging-log4j2), I *cannot* print a stack trace. When my code tries to
print stack traces, I get this:
java.lang.NoSuchMethodError: org.apache.logging.log4j.core.impl.
ThrowableProxy.formatExtendedStackTraceTo(Ljava/lang/StringBuilder;Ljava/
util/List;Lorg/apache/logging/log4j/core/pattern/TextRenderer;Ljava/lang/
String;Ljava/lang/String;)V
at org.apache.logging.log4j.core.pattern.
ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.
java:74)
at org.apache.logging.log4j.core.pattern.PatternFormatter.format(
PatternFormatter.java:38)
at org.apache.logging.log4j.core.layout.
PatternLayout$PatternSerializer.toSerializable(PatternLayout.java:341)
at org.apache.logging.log4j.core.layout.PatternLayout.toText(
PatternLayout.java:240)
at org.apache.logging.log4j.core.layout.PatternLayout.encode(
PatternLayout.java:225)
at org.apache.logging.log4j.core.layout.PatternLayout.encode(
PatternLayout.java:59)
at org.apache.logging.log4j.core.appender.
AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.
java:197)
at org.apache.logging.log4j.core.appender.
AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:190
)
at org.apache.logging.log4j.core.appender.
AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:181)
at org.apache.logging.log4j.core.appender.RollingFileAppender.append
(RollingFileAppender.java:312)
at org.apache.logging.log4j.core.config.AppenderControl.
tryCallAppender(AppenderControl.java:156)
at org.apache.logging.log4j.core.config.AppenderControl.
callAppender0(AppenderControl.java:129)
at org.apache.logging.log4j.core.config.AppenderControl.
callAppenderPreventRecursion(AppenderControl.java:120)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender
(AppenderControl.java:84)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(
LoggerConfig.java:543)
at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent
(LoggerConfig.java:502)
at org.apache.logging.log4j.core.config.LoggerConfig.log(
LoggerConfig.java:485)
at org.apache.logging.log4j.core.config.LoggerConfig.log(
LoggerConfig.java:412)
at org.apache.logging.log4j.core.config.
AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.
java:63)
at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:154)
at org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog0(
PaxLoggerImpl.java:151)
at org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog(
PaxLoggerImpl.java:144)
at org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.error(
PaxLoggerImpl.java:240)
at org.ops4j.pax.logging.internal.TrackingLogger.error(
TrackingLogger.java:126)
at org.ops4j.pax.logging.log4jv2.Log4jv2Logger.logMessage(
Log4jv2Logger.java:147)
at org.apache.logging.log4j.spi.AbstractLogger.log(AbstractLogger.
java:2102)
at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(
AbstractLogger.java:2190)
at org.apache.logging.log4j.spi.AbstractLogger.
logMessageTrackRecursion(AbstractLogger.java:2144)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(
AbstractLogger.java:2127)
at org.apache.logging.log4j.spi.AbstractLogger.logMessage(
AbstractLogger.java:2003)
at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(
AbstractLogger.java:1975)
at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.
java:742)
at my.code.that.calls.logger.error(MyCode.java:71)
Where the last line is the line in my code that calls (I hid the real
package and class name in the stack trace above):
logger.error("Some message", ex);
>From what I can see in the 1.10.4 source code, the stated method "org.apache
.logging.log4j.core.impl.ThrowableProxy.formatExtendedStackTraceTo" indeed
does *not* exist in Pax Logging Log4J2's version of ThrowableProxy. If I
understand Github correctly, the link to the 1.10.4 code is:
https://github.com/ops4j/org.ops4j.pax.logging/tree/f40fafcff4e7aaffc13025f273fbb9c93fff3590
Can someone check this out? I am okay with using 1.10.2, though if you do
fix the problem with losing track of loggers that I reported in my other
post, I'm guessing you would do it based off 1.10.4, not off 1.10.2. Fixing
the "losing track of loggers" problem without being able to print stack
traces doesn't help me much.
Thanks again,
Monica
--
--
------------------
OPS4J - http://www.ops4j.org - [email protected]
---
You received this message because you are subscribed to the Google Groups
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ops4j/2003775d-ae3c-43ec-a20a-e258f5232c01%40googlegroups.com.