You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Jeff Shaw (JIRA)" <ji...@apache.org> on 2018/06/28 03:19:00 UTC
[jira] [Comment Edited] (LOG4J2-2360) Expose SourceLocation to
public API
[ https://issues.apache.org/jira/browse/LOG4J2-2360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16525859#comment-16525859 ]
Jeff Shaw edited comment on LOG4J2-2360 at 6/28/18 3:18 AM:
------------------------------------------------------------
The cost could be made even smaller if we memoized the StackTraceElements or made them static somehow. Currently I think one is allocated for each call to the logger.
was (Author: shawjef3):
The cost could be made even smaller if we memoized the StackTraceElements.
> Expose SourceLocation to public API
> -----------------------------------
>
> Key: LOG4J2-2360
> URL: https://issues.apache.org/jira/browse/LOG4J2-2360
> Project: Log4j 2
> Issue Type: Improvement
> Reporter: Jeff Shaw
> Priority: Major
>
> I learned there are two features of log4j2 and its official Scala API that could work together to improve performance with some API changes.
> Log4j2's messages can include the source file name and line number.
> Scala macros can be used to provide compile time file names and line numbers to runtime for the cost of allocating a StackTraceElement. However, there is currently not a good way to combine the two.
> I created the changes we'd need to allow clients of log4j2 to manually provide SourceLocation for a log message, and then I used the new methods to create SourceLocation for Scala files at compile time. This will allow loggers to provide source location without having to create a stack trace.
>
> For log4j2 see [https://github.com/shawjef3/logging-log4j2/commit/4f75053cdfe39614fc60ecc609f3658cdd4840db] and for an example use by the scala loggers see [https://github.com/shawjef3/logging-log4j-scala/commit/dd9a5dd2d6bef80ef4f0334c2ed7043299ddbad4].
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)