private def logMessageArgsThrowable()

in log4j-api-scala_3/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala [461:472]


  private def logMessageArgsThrowable(underlying: Expr[Logger], level: Expr[Level], message: Expr[CharSequence],
                                      args: Expr[Seq[Any]], throwable: Expr[Throwable]) (using Quotes) = {
    val anyRefArgs = formatArgs(args)
    if(anyRefArgs.isEmpty)
    '{ if ($underlying.delegate.isEnabled($level)) $underlying.logMessage($level, null, $message.toString, $throwable) }
    else if(anyRefArgs.length == 1)
    '{ if ($underlying.delegate.isEnabled($level)) $underlying.delegate.log($level, $message.toString, ${anyRefArgs.head}, $throwable) }
    else {
      val extendedArgs = anyRefArgs :+ throwable
      '{ if ($underlying.delegate.isEnabled($level)) $underlying.delegate.log($level, $message.toString, ${Expr.ofSeq(extendedArgs)}*) }
    }
  }