You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "PJ Fanning (Jira)" <ji...@apache.org> on 2022/01/04 11:17:00 UTC

[jira] [Comment Edited] (LOG4J2-3310) maybe some log4j-api-scala methods should be changed back to being macros

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

PJ Fanning edited comment on LOG4J2-3310 at 1/4/22, 11:16 AM:
--------------------------------------------------------------

[~mattsicker] I'm not sure if this is something that would delay a putative release for LOG4J2-3184 but if you think this issue is worthwhile, I can have a look at doing a new Pull Request

Before, I was concentrating on fact that macros were adjusting String/CharSequence inputs but not other inputs. But thinking again, the param list could contain function calls and by having macro add a level enabled check, those function calls could potentially be avoided.


was (Author: pj.fanning):
[~mattsicker] I'm not sure if this is something that would delay a putative release for LOG4J2-3184 but if you think this issue is worthwhile, I can have a look at doing a new Pull Request

> maybe some log4j-api-scala methods should be changed back to being macros
> -------------------------------------------------------------------------
>
>                 Key: LOG4J2-3310
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3310
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Scala API
>            Reporter: PJ Fanning
>            Priority: Major
>
> In hindsight, I suspect that I went too far in LOG4J2-3184 with changing methods that used macros into ones that just delegated to base logger at runtime.
> These methods are among those that possibly should be macro based, as it might be nice to adjust the pre-compiled code to add the level isEnabled check.
>  
> def apply(inline level: Level, inline marker: Marker, inline message: Message): Unit
> def apply(inline level: Level, inline marker: Marker, inline message: AnyRef): Unit
> def apply(inline level: Level, inline marker: Marker, inline message: Message, inline cause: Throwable): Unit
> def apply(inline level: Level, inline marker: Marker, inline message: AnyRef, inline cause: Throwable): Unit
> def apply(inline level: Level, inline message: Message): Unit
> def apply(inline level: Level, inline message: AnyRef): Unit
> def apply(inline level: Level, inline message: Message, inline cause: Throwable): Unit
> def apply(inline level: Level, inline message: AnyRef, inline cause: Throwable): Unit
> def traceEntry(inline params: AnyRef*): EntryMessage
> def traceEntry(inline message: Message): EntryMessage
> def traceExit(inline entryMessage: EntryMessage): Unit
> def traceExit[R](inline entryMessage: EntryMessage, result: R): R
> def traceExit[R](inline message: Message, result: R): R
> def throwing[T <: Throwable](inline level: Level, inline t: T): T
> def catching(inline level: Level, inline t: Throwable): Unit
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)