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

Carter Kozak commented on LOG4J2-2750:
--------------------------------------

I think this relates to LOG4J2-2391 where unfortunately I haven't been able to 
come up with a clean solution (yet).

For this case I think we should provide a global configuration parameter which 
allows us to disable extended stack trace information (thus class loading). 
This eliminates most of the risk an complexity because it produces the same 
information we would expect from a failed search without the class loading cost.

In parallel, I would be in favor of a flag specifically for PatternLayout to 
use the throwable pattern converter by default instead of extended throwable 
pattern converter when enabled – Perhaps by specifying a lookup for a 
PatternConverter where handlesThrowable=true.

> 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
>
> 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)

Reply via email to