You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Mikhail Talisov (Jira)" <ji...@apache.org> on 2020/01/09 08:21:00 UTC

[jira] [Commented] (LOG4J2-2750) Setting to disable extended stack trace for layouts

    [ https://issues.apache.org/jira/browse/LOG4J2-2750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17011539#comment-17011539 ] 

Mikhail Talisov commented on LOG4J2-2750:
-----------------------------------------

If ExtendedThrowablePatternConverter far exceeds performance of the standard ThrowablePatternConverter then we can modify ThrowablePatternConverter.format method to use the same logic as in ExtendedThrowablePatternConverter (without Throwable.printStackTrace). For that we need to use ThrowableProxy for %throwable (and %rThrowable) pattern also, but this can be different ThrowableProxy implementation (need to change ThrowableProxy implementation or create new proxy class). Also we should change Log4jLogEvent.getThrownProxy method to initialize ThrowableProxy properly. For async loggers can be used the same way I think.

> Setting to disable extended stack trace for layouts
> ---------------------------------------------------
>
>                 Key: LOG4J2-2750
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2750
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Layouts
>            Reporter: Mikhail Talisov
>            Priority: Major
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> By default almost all layouts use an extended stack trace output format (ExtendedStackTraceElement). Currently I can change the stack trace format in PatternLayout by specifiyng its template (%throwable, %xThrowable, etc). When specified %throwable then no class packaging information is included in output.
> But when I use for example JsonLayout or AsyncAppender with any layout then no way to exclude class packaging information from the stack trace (this mean class loading from classpath for all stack trace elements). For performance reason would be good to have a setting to disable extending the stack trace in layouts.
> It's possible to add new attribute "extendedStackTrace" (for example, which is true by default) in layout elements (except PatternLayout and some other layouts where no ThrowableProxyHelper#toExtendedStackTrace is using). When I set extendedStackTrace="false" then stack trace must be serialized without class loading for all stack trace elements. AsyncAppender must use refs appender layout's attribute.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)