You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2022/01/07 01:50:28 UTC

[logging-log4j-scala] branch master updated: Macro refactor

This is an automated email from the ASF dual-hosted git repository.

mattsicker pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j-scala.git


The following commit(s) were added to refs/heads/master by this push:
     new d21eb00  Macro refactor
     new bccdc82  Merge pull request #13 from pjfanning/macro-refactor-scala3
d21eb00 is described below

commit d21eb00bfefd79a8d4f745f771ac63b10e257f78
Author: PJ Fanning <pj...@users.noreply.github.com>
AuthorDate: Thu Jan 6 23:40:02 2022 +0100

    Macro refactor
---
 .../org/apache/logging/log4j/scala/Logger.scala    | 56 +++++++---------------
 .../apache/logging/log4j/scala/LoggerMacro.scala   | 38 +++++++++++++++
 2 files changed, 54 insertions(+), 40 deletions(-)

diff --git a/src/main/scala-3/org/apache/logging/log4j/scala/Logger.scala b/src/main/scala-3/org/apache/logging/log4j/scala/Logger.scala
index 880bace..8184496 100644
--- a/src/main/scala-3/org/apache/logging/log4j/scala/Logger.scala
+++ b/src/main/scala-3/org/apache/logging/log4j/scala/Logger.scala
@@ -294,11 +294,8 @@ class Logger private(val delegate: ExtendedLogger) extends AnyVal {
     * @param marker  the marker data specific to this log statement
     * @param message the message to be logged
     */
-  inline def apply(inline level: Level, inline marker: Marker, inline message: Message): Unit = {
-    if (delegate.isEnabled(level, marker)) {
-      delegate.log(level, marker, message)
-    }
-  }
+  inline def apply(inline level: Level, inline marker: Marker, inline message: Message): Unit =
+    ${LoggerMacro.logMarkerMsg('this, 'level, 'marker, 'message)}
 
   /**
     * Logs a string with the specific `Marker` at the given `Level`.
@@ -317,11 +314,8 @@ class Logger private(val delegate: ExtendedLogger) extends AnyVal {
     * @param marker  the marker data specific to this log statement
     * @param message the message to be logged
     */
-  inline def apply(inline level: Level, inline marker: Marker, inline message: AnyRef): Unit = {
-    if (delegate.isEnabled(level, marker)) {
-      delegate.log(level, marker, message)
-    }
-  }
+  inline def apply(inline level: Level, inline marker: Marker, inline message: AnyRef): Unit =
+    ${LoggerMacro.logMarkerObject('this, 'level, 'marker, 'message)}
 
   /**
     * Logs a `Message` with the specific `Marker` at the given `Level` including the stack trace
@@ -332,11 +326,8 @@ class Logger private(val delegate: ExtendedLogger) extends AnyVal {
     * @param message the message to be logged
     * @param cause   the cause
     */
-  inline def apply(inline level: Level, inline marker: Marker, inline message: Message, inline cause: Throwable): Unit = {
-    if (delegate.isEnabled(level, marker)) {
-      delegate.log(level, marker, message, cause)
-    }
-  }
+  inline def apply(inline level: Level, inline marker: Marker, inline message: Message, inline cause: Throwable): Unit =
+    ${LoggerMacro.logMarkerMsgThrowable('this, 'level, 'marker, 'message, 'cause)}
 
   /**
     * Logs a string with the specific `Marker` at the given `Level` including the stack trace
@@ -359,11 +350,8 @@ class Logger private(val delegate: ExtendedLogger) extends AnyVal {
     * @param message the message to be logged
     * @param cause   the cause
     */
-  inline def apply(inline level: Level, inline marker: Marker, inline message: AnyRef, inline cause: Throwable): Unit = {
-    if (delegate.isEnabled(level, marker)) {
-      delegate.log(level, marker, message, cause)
-    }
-  }
+  inline def apply(inline level: Level, inline marker: Marker, inline message: AnyRef, inline cause: Throwable): Unit =
+    ${LoggerMacro.logMarkerObjectThrowable('this, 'level, 'marker, 'message, 'cause)}
 
   /**
     * Logs a `Message` at the given `Level`.
@@ -371,11 +359,8 @@ class Logger private(val delegate: ExtendedLogger) extends AnyVal {
     * @param level   the logging level
     * @param message the message to be logged
     */
-  inline def apply(inline level: Level, inline message: Message): Unit = {
-    if (delegate.isEnabled(level)) {
-      delegate.log(level, message)
-    }
-  }
+  inline def apply(inline level: Level, inline message: Message): Unit =
+    ${LoggerMacro.logMsg('this, 'level, 'message)}
 
   /**
     * Logs a string at the given `Level`.
@@ -392,11 +377,8 @@ class Logger private(val delegate: ExtendedLogger) extends AnyVal {
     * @param level   the logging level
     * @param message the message to be logged
     */
-  inline def apply(inline level: Level, inline message: AnyRef): Unit = {
-    if (delegate.isEnabled(level)) {
-      delegate.log(level, message)
-    }
-  }
+  inline def apply(inline level: Level, inline message: AnyRef): Unit =
+    ${LoggerMacro.logObject('this, 'level, 'message)}
 
   /**
     * Logs a `Message` at the given `Level` including the stack trace of the given `Throwable`.
@@ -405,11 +387,8 @@ class Logger private(val delegate: ExtendedLogger) extends AnyVal {
     * @param message the message to be logged
     * @param cause   a `Throwable`
     */
-  inline def apply(inline level: Level, inline message: Message, inline cause: Throwable): Unit = {
-    if (delegate.isEnabled(level)) {
-      delegate.log(level, message, cause)
-    }
-  }
+  inline def apply(inline level: Level, inline message: Message, inline cause: Throwable): Unit =
+    ${LoggerMacro.logMsgThrowable('this, 'level, 'message, 'cause)}
 
   /**
     * Logs a string at the given `Level` including the stack trace of the given `Throwable`.
@@ -428,11 +407,8 @@ class Logger private(val delegate: ExtendedLogger) extends AnyVal {
     * @param message the message to be logged
     * @param cause   a `Throwable`
     */
-  inline def apply(inline level: Level, inline message: AnyRef, inline cause: Throwable): Unit = {
-    if (delegate.isEnabled(level)) {
-      delegate.log(level, message, cause)
-    }
-  }
+  inline def apply(inline level: Level, inline message: AnyRef, inline cause: Throwable): Unit =
+    ${LoggerMacro.logObjectThrowable('this, 'level, 'message, 'cause)}
 
 
   /**
diff --git a/src/main/scala-3/org/apache/logging/log4j/scala/LoggerMacro.scala b/src/main/scala-3/org/apache/logging/log4j/scala/LoggerMacro.scala
index eeca99a..d3ec3f4 100644
--- a/src/main/scala-3/org/apache/logging/log4j/scala/LoggerMacro.scala
+++ b/src/main/scala-3/org/apache/logging/log4j/scala/LoggerMacro.scala
@@ -387,6 +387,24 @@ private object LoggerMacro {
     '{ if ($underlying.delegate.isEnabled(Level.FATAL, $marker)) $underlying.fatal($marker, $message, $throwable) }
   }
 
+  def logMsg(underlying: Expr[Logger], level: Expr[Level], message: Expr[Message])(using Quotes): Expr[Unit] = {
+    '{ if ($underlying.delegate.isEnabled($level)) $underlying.delegate.log($level, $message) }
+  }
+
+  def logMsgThrowable(underlying: Expr[Logger], level: Expr[Level], message: Expr[Message], throwable: Expr[Throwable])
+                     (using Quotes): Expr[Unit] = {
+    '{ if ($underlying.delegate.isEnabled($level)) $underlying.delegate.log($level, $message, $throwable) }
+  }
+
+  def logObject(underlying: Expr[Logger], level: Expr[Level], message: Expr[AnyRef])(using Quotes): Expr[Unit] = {
+    '{ if ($underlying.delegate.isEnabled($level)) $underlying.delegate.log($level, $message) }
+  }
+
+  def logObjectThrowable(underlying: Expr[Logger], level: Expr[Level], message: Expr[AnyRef],
+                         throwable: Expr[Throwable])(using Quotes): Expr[Unit] = {
+    '{ if ($underlying.delegate.isEnabled($level)) $underlying.delegate.log($level, $message, $throwable) }
+  }
+
   def logCseq(underlying: Expr[Logger], level: Expr[Level], message: Expr[CharSequence])(using Quotes): Expr[Unit] = {
     val (messageFormat, args) = deconstructInterpolatedMessage(message)
     logMessageArgs(underlying, level, messageFormat, Expr.ofSeq(args))
@@ -398,6 +416,26 @@ private object LoggerMacro {
     logMessageArgsThrowable(underlying, level, messageFormat, Expr.ofSeq(args), throwable)
   }
 
+  def logMarkerMsg(underlying: Expr[Logger], level: Expr[Level], marker: Expr[Marker], message: Expr[Message])
+                  (using Quotes): Expr[Unit] = {
+    '{ if ($underlying.delegate.isEnabled($level, $marker)) $underlying.delegate.log($level, $marker, $message) }
+  }
+
+  def logMarkerMsgThrowable(underlying: Expr[Logger], level: Expr[Level], marker: Expr[Marker], message: Expr[Message], throwable: Expr[Throwable])
+                  (using Quotes): Expr[Unit] = {
+    '{ if ($underlying.delegate.isEnabled($level, $marker)) $underlying.delegate.log($level, $marker, $message, $throwable) }
+  }
+
+  def logMarkerObject(underlying: Expr[Logger], level: Expr[Level], marker: Expr[Marker], message: Expr[AnyRef])
+                     (using Quotes): Expr[Unit] = {
+    '{ if ($underlying.delegate.isEnabled($level, $marker)) $underlying.delegate.log($level, $marker, $message) }
+  }
+
+  def logMarkerObjectThrowable(underlying: Expr[Logger], level: Expr[Level], marker: Expr[Marker], message: Expr[AnyRef],
+                               throwable: Expr[Throwable])(using Quotes): Expr[Unit] = {
+    '{ if ($underlying.delegate.isEnabled($level, $marker)) $underlying.delegate.log($level, $marker, $message, $throwable) }
+  }
+
   def logMarkerCseq(underlying: Expr[Logger], level: Expr[Level], marker: Expr[Marker], message: Expr[CharSequence])(using Quotes): Expr[Unit] = {
     val (messageFormat, args) = deconstructInterpolatedMessage(message)
     logMarkerMessageArgs(underlying, level, marker, messageFormat, Expr.ofSeq(args))