diff --git a/src/main/scala-2/com/typesafe/scalalogging/LoggerTakingImplicitMacro.scala b/src/main/scala-2/com/typesafe/scalalogging/LoggerTakingImplicitMacro.scala index ffec480..dcce88c 100644 --- a/src/main/scala-2/com/typesafe/scalalogging/LoggerTakingImplicitMacro.scala +++ b/src/main/scala-2/com/typesafe/scalalogging/LoggerTakingImplicitMacro.scala @@ -351,7 +351,6 @@ private[scalalogging] object LoggerTakingImplicitMacro { }""" } - // Trace def traceMessage[A](c: LoggerContext[A])(message: c.Expr[String])(a: c.Expr[A]): c.universe.Tree = { diff --git a/src/main/scala-3/com/typesafe/scalalogging/LoggerTakingImplicitImpl.scala b/src/main/scala-3/com/typesafe/scalalogging/LoggerTakingImplicitImpl.scala index 7d77745..5e99eec 100644 --- a/src/main/scala-3/com/typesafe/scalalogging/LoggerTakingImplicitImpl.scala +++ b/src/main/scala-3/com/typesafe/scalalogging/LoggerTakingImplicitImpl.scala @@ -27,7 +27,7 @@ trait LoggerTakingImplicitImpl[A] { inline def error(inline marker: Marker, inline message: String, inline args: Any*)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.errorMessageArgsMarker('underlying, 'canLogEv, 'marker,'message, 'args)('a)} - + inline def whenErrorEnabled(inline body: Unit)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.errorCode('underlying, 'canLogEv, 'body)('a)} // Warn @@ -49,6 +49,8 @@ trait LoggerTakingImplicitImpl[A] { inline def warn(inline marker: Marker, inline message: String, inline args: Any*)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.warnMessageArgsMarker('underlying, 'canLogEv, 'marker,'message, 'args)('a)} + inline def whenWarnEnabled(inline body: Unit)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.warnCode('underlying, 'canLogEv, 'body)('a)} + // Info @@ -71,6 +73,7 @@ trait LoggerTakingImplicitImpl[A] { inline def info(inline marker: Marker, inline message: String, inline args: Any*)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.infoMessageArgsMarker('underlying, 'canLogEv, 'marker,'message, 'args)('a)} + inline def whenInfoEnabled(inline body: Unit)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.infoCode('underlying, 'canLogEv, 'body)('a)} // Debug @@ -93,7 +96,7 @@ trait LoggerTakingImplicitImpl[A] { inline def debug(inline marker: Marker, inline message: String, inline args: Any*)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.debugMessageArgsMarker('underlying, 'canLogEv, 'marker,'message, 'args)('a)} - + inline def whenDebugEnabled(inline body: Unit)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.debugCode('underlying, 'canLogEv, 'body)('a)} // Trace @@ -114,4 +117,6 @@ trait LoggerTakingImplicitImpl[A] { inline def trace(inline marker: Marker, inline message: String, inline args: Any*)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.traceMessageArgsMarker('underlying, 'canLogEv, 'marker,'message, 'args)('a)} + + inline def whenTraceEnabled(inline body: Unit)(implicit inline a: A): Unit = ${LoggerTakingImplicitMacro.traceCode('underlying, 'canLogEv, 'body)('a)} } diff --git a/src/main/scala-3/com/typesafe/scalalogging/LoggerTakingImplicitMacro.scala b/src/main/scala-3/com/typesafe/scalalogging/LoggerTakingImplicitMacro.scala index 3df74bb..31bff70 100644 --- a/src/main/scala-3/com/typesafe/scalalogging/LoggerTakingImplicitMacro.scala +++ b/src/main/scala-3/com/typesafe/scalalogging/LoggerTakingImplicitMacro.scala @@ -60,8 +60,11 @@ private[scalalogging] object LoggerTakingImplicitMacro { }} } - - + def errorCode[A:Type](underlying: Expr[Underlying], canLogEv: Expr[CanLog[A]], body: Expr[Unit])(a: Expr[A])(using Quotes) = + '{if ($underlying.isErrorEnabled) { + $body + $canLogEv.afterLog($a) + }} // Warn @@ -117,9 +120,13 @@ private[scalalogging] object LoggerTakingImplicitMacro { }} } + def warnCode[A: Type](underlying: Expr[Underlying], canLogEv: Expr[CanLog[A]], body: Expr[Unit])(a: Expr[A])(using Quotes) = + '{ if ($underlying.isWarnEnabled) { + $body + $canLogEv.afterLog($a) + }} - // Info def infoMessage[A: Type](underlying: Expr[Underlying], canLogEv: Expr[CanLog[A]], message: Expr[String])(a: Expr[A])(using Quotes): Expr[Unit] = @@ -174,9 +181,13 @@ private[scalalogging] object LoggerTakingImplicitMacro { }} } + def infoCode[A: Type](underlying: Expr[Underlying], canLogEv: Expr[CanLog[A]], body: Expr[Unit])(a: Expr[A])(using Quotes) = + '{ if ($underlying.isInfoEnabled) { + $body + $canLogEv.afterLog($a) + }} - // Debug def debugMessage[A: Type](underlying: Expr[Underlying], canLogEv: Expr[CanLog[A]], message: Expr[String])(a: Expr[A])(using Quotes): Expr[Unit] = @@ -231,9 +242,13 @@ private[scalalogging] object LoggerTakingImplicitMacro { }} } + def debugCode[A: Type](underlying: Expr[Underlying], canLogEv: Expr[CanLog[A]], body: Expr[Unit])(a: Expr[A])(using Quotes) = + '{ if ($underlying.isDebugEnabled) { + $body + $canLogEv.afterLog($a) + }} + - - // Trace def traceMessage[A: Type](underlying: Expr[Underlying], canLogEv: Expr[CanLog[A]], message: Expr[String])(a: Expr[A])(using Quotes): Expr[Unit] = @@ -287,4 +302,10 @@ private[scalalogging] object LoggerTakingImplicitMacro { $canLogEv.afterLog($a) }} } + + def traceCode[A: Type](underlying: Expr[Underlying], canLogEv: Expr[CanLog[A]], body: Expr[Unit])(a: Expr[A])(using Quotes) = + '{ if ($underlying.isTraceEnabled) { + $body + $canLogEv.afterLog($a) + }} } \ No newline at end of file