Reorganize api module
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/commit/72fe94f7 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/tree/72fe94f7 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/diff/72fe94f7 Branch: refs/heads/master Commit: 72fe94f7cf604c5962d2a47b16ab3845f844da92 Parents: 3b425c9 Author: Matt Sicker <[email protected]> Authored: Wed Mar 28 19:59:00 2018 -0500 Committer: Matt Sicker <[email protected]> Committed: Wed Mar 28 19:59:00 2018 -0500 ---------------------------------------------------------------------- .../logging/log4j/scala/LoggerMacro.scala | 425 ------------- .../org/apache/logging/log4j/scala/Logger.scala | 592 ------------------- .../logging/log4j/scala/LoggerMacro.scala | 425 ------------- .../apache/logging/log4j/scala/Logging.scala | 30 - .../logging/log4j/scala/LoggingContext.scala | 84 --- .../apache/logging/log4j/scala/LoggerTest.scala | 552 ----------------- .../log4j/scala/LoggingContextTest.scala | 115 ---- build.sbt | 139 +++-- .../logging/log4j/scala/LoggerMacro.scala | 425 +++++++++++++ .../org/apache/logging/log4j/scala/Logger.scala | 592 +++++++++++++++++++ .../logging/log4j/scala/LoggerMacro.scala | 425 +++++++++++++ .../apache/logging/log4j/scala/Logging.scala | 30 + .../logging/log4j/scala/LoggingContext.scala | 84 +++ .../apache/logging/log4j/scala/LoggerTest.scala | 552 +++++++++++++++++ .../log4j/scala/LoggingContextTest.scala | 115 ++++ 15 files changed, 2302 insertions(+), 2283 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/blob/72fe94f7/api/src/main/scala-2.10/org/apache/logging/log4j/scala/LoggerMacro.scala ---------------------------------------------------------------------- diff --git a/api/src/main/scala-2.10/org/apache/logging/log4j/scala/LoggerMacro.scala b/api/src/main/scala-2.10/org/apache/logging/log4j/scala/LoggerMacro.scala deleted file mode 100644 index 24b3c8c..0000000 --- a/api/src/main/scala-2.10/org/apache/logging/log4j/scala/LoggerMacro.scala +++ /dev/null @@ -1,425 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache license, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the license for the specific language governing permissions and - * limitations under the license. - */ -package org.apache.logging.log4j.scala - -import org.apache.logging.log4j.message.{EntryMessage, Message} -import org.apache.logging.log4j.spi.AbstractLogger -import org.apache.logging.log4j.{Level, Marker} - -import scala.language.experimental.macros -import scala.reflect.macros.Context - -/** - * Inspired from [[https://github.com/typesafehub/scalalogging ScalaLogging]]. - */ -private object LoggerMacro { - - type LoggerContext = Context {type PrefixType = Logger} - - - def fatalMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.FATAL), marker, message) - - def fatalMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.FATAL), marker, message) - - def fatalMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.FATAL), marker, message) - - def fatalMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.FATAL), marker, message, cause) - - def fatalMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.FATAL), marker, message, cause) - - def fatalMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.FATAL), marker, message, cause) - - def fatalMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.FATAL), message) - - def fatalCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.FATAL), message) - - def fatalObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.FATAL), message) - - def fatalMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.FATAL), message, cause) - - def fatalCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.FATAL), message, cause) - - def fatalObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.FATAL), message, cause) - - - def errorMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.ERROR), marker, message) - - def errorMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.ERROR), marker, message) - - def errorMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.ERROR), marker, message) - - def errorMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.ERROR), marker, message, cause) - - def errorMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.ERROR), marker, message, cause) - - def errorMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.ERROR), marker, message, cause) - - def errorMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.ERROR), message) - - def errorCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.ERROR), message) - - def errorObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.ERROR), message) - - def errorMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.ERROR), message, cause) - - def errorCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.ERROR), message, cause) - - def errorObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.ERROR), message, cause) - - - def warnMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.WARN), marker, message) - - def warnMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.WARN), marker, message) - - def warnMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.WARN), marker, message) - - def warnMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.WARN), marker, message, cause) - - def warnMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.WARN), marker, message, cause) - - def warnMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.WARN), marker, message, cause) - - def warnMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.WARN), message) - - def warnCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.WARN), message) - - def warnObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.WARN), message) - - def warnMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.WARN), message, cause) - - def warnCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.WARN), message, cause) - - def warnObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.WARN), message, cause) - - - def infoMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.INFO), marker, message) - - def infoMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.INFO), marker, message) - - def infoMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.INFO), marker, message) - - def infoMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.INFO), marker, message, cause) - - def infoMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.INFO), marker, message, cause) - - def infoMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.INFO), marker, message, cause) - - def infoMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.INFO), message) - - def infoCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.INFO), message) - - def infoObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.INFO), message) - - def infoMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.INFO), message, cause) - - def infoCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.INFO), message, cause) - - def infoObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.INFO), message, cause) - - - def debugMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.DEBUG), marker, message) - - def debugMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.DEBUG), marker, message) - - def debugMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.DEBUG), marker, message) - - def debugMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.DEBUG), marker, message, cause) - - def debugMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.DEBUG), marker, message, cause) - - def debugMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.DEBUG), marker, message, cause) - - def debugMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.DEBUG), message) - - def debugCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.DEBUG), message) - - def debugObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.DEBUG), message) - - def debugMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.DEBUG), message, cause) - - def debugCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.DEBUG), message, cause) - - def debugObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.DEBUG), message, cause) - - - def traceMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.TRACE), marker, message) - - def traceMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.TRACE), marker, message) - - def traceMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.TRACE), marker, message) - - def traceMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.TRACE), marker, message, cause) - - def traceMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.TRACE), marker, message, cause) - - def traceMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.TRACE), marker, message, cause) - - def traceMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.TRACE), message) - - def traceCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.TRACE), message) - - def traceObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.TRACE), message) - - def traceMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.TRACE), message, cause) - - def traceCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.TRACE), message, cause) - - def traceObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.TRACE), message, cause) - - - def logMarkerMsg(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[Message]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, null) - } - ) - - def logMarkerCseq(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, null) - } - ) - - def logMarkerObject(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, null) - } - ) - - def logMarkerMsgThrowable(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, cause.splice) - } - ) - - def logMarkerCseqThrowable(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, cause.splice) - } - ) - - def logMarkerObjectThrowable(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, cause.splice) - } - ) - - def logMsg(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[Message]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, null) - } - ) - - def logCseq(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[CharSequence]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, null) - } - ) - - def logObject(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[AnyRef]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, null) - } - ) - - def logMsgThrowable(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[Message], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, cause.splice) - } - ) - - def logCseqThrowable(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, cause.splice) - } - ) - - def logObjectThrowable(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, cause.splice) - } - ) - - - def traceEntry(c: LoggerContext)(): c.Expr[EntryMessage] = - c.universe.reify( - c.prefix.splice.delegate.traceEntry() - ) - - def traceEntryParams(c: LoggerContext)(params: c.Expr[AnyRef]*): c.Expr[EntryMessage] = { - import c.universe._ - val isEnabled = Apply( - Select(Select(c.prefix.tree, newTermName("delegate")), newTermName("isEnabled")), - List( - reify(Level.TRACE).tree, - reify(AbstractLogger.ENTRY_MARKER).tree, - reify(null: AnyRef).tree, - reify(null).tree - ) - ) - - val log = Apply( - Select(Select(c.prefix.tree, newTermName("delegate")), newTermName("traceEntry")), - reify(null: String).tree :: (params map (_.tree)).toList - ) - c.Expr[EntryMessage](If(isEnabled, log, reify(null).tree)) - } - - - def traceEntryMessage(c: LoggerContext)(message: c.Expr[Message]): c.Expr[EntryMessage] = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null: AnyRef, null)) { - c.prefix.splice.delegate.traceEntry(message.splice) // TODO should not do ifEnabled check - } else { - null - } - ) - - def traceExit(c: LoggerContext)(): c.Expr[Unit] = - c.universe.reify( - c.prefix.splice.delegate.traceExit() - ) - - def traceExitResult[R: c.WeakTypeTag](c: LoggerContext)(result: c.Expr[R]): c.Expr[R] = - c.universe.reify( - c.prefix.splice.delegate.traceExit(result.splice) - ) - - def traceExitEntryMessage(c: LoggerContext)(entryMessage: c.Expr[EntryMessage]): c.Expr[Unit] = - c.universe.reify( - c.prefix.splice.delegate.traceExit(entryMessage.splice) - ) - - def traceExitEntryMessageResult[R: c.WeakTypeTag](c: LoggerContext)(entryMessage: c.Expr[EntryMessage], result: c.Expr[R]): c.Expr[R] = - c.universe.reify( - c.prefix.splice.delegate.traceExit(entryMessage.splice, result.splice) - ) - - def traceExitMessageResult[R: c.WeakTypeTag](c: LoggerContext)(message: c.Expr[Message], result: c.Expr[R]): c.Expr[R] = - c.universe.reify( - { - if (message.splice != null && c.prefix.splice.delegate.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, message.splice, null)) { - c.prefix.splice.delegate.traceExit(message.splice, result.splice) // TODO should not do ifEnabled check - } - result.splice - } - ) - - def throwing[T <: Throwable: c.WeakTypeTag](c: LoggerContext)(t: c.Expr[T]): c.Expr[T] = - c.universe.reify( - c.prefix.splice.delegate.throwing(t.splice) - ) - - def throwingLevel[T <: Throwable: c.WeakTypeTag](c: LoggerContext)(level: c.Expr[Level], t: c.Expr[T]): c.Expr[T] = - c.universe.reify( - c.prefix.splice.delegate.throwing(level.splice, t.splice) - ) - - def catching(c: LoggerContext)(t: c.Expr[Throwable]): c.Expr[Unit] = - c.universe.reify( - c.prefix.splice.delegate.catching(t.splice) - ) - - def catchingLevel(c: LoggerContext)(level: c.Expr[Level], t: c.Expr[Throwable]): c.Expr[Unit] = - c.universe.reify( - c.prefix.splice.delegate.catching(level.splice, t.splice) - ) - -} http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/blob/72fe94f7/api/src/main/scala/org/apache/logging/log4j/scala/Logger.scala ---------------------------------------------------------------------- diff --git a/api/src/main/scala/org/apache/logging/log4j/scala/Logger.scala b/api/src/main/scala/org/apache/logging/log4j/scala/Logger.scala deleted file mode 100644 index b42cd5a..0000000 --- a/api/src/main/scala/org/apache/logging/log4j/scala/Logger.scala +++ /dev/null @@ -1,592 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache license, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the license for the specific language governing permissions and - * limitations under the license. - */ -package org.apache.logging.log4j.scala - -import org.apache.logging.log4j.message.{EntryMessage, Message, MessageFactory2} -import org.apache.logging.log4j.spi.ExtendedLogger -import org.apache.logging.log4j.{Level, LogManager, Marker} - -import scala.language.experimental.macros - -/** - * Factory for [[Logger]]s. - * - * The [[Logging]] trait provides a simple way to get a properly named logger into a class. - */ -object Logger { - - final val FQCN = getClass.getName - - /** - * Create a properly named [[Logger]] for a given class. - * - * @param clazz the class - */ - def apply(clazz: Class[_]): Logger = Logger(LogManager.getContext(clazz.getClassLoader, false).getLogger(clazz.getName)) - - /** - * Create a [[Logger]] wrapping the given Log4j logger. - * - * @param delegate the Log4j logger to wrap - */ - def apply(delegate: ExtendedLogger): Logger = new Logger(delegate) - -} - -/** - * Scala wrapper for the Log4j `Logger` interface. - * - * Frequently the purpose of logging is to provide information about what is happening in the system, - * which requires including information about the objects being manipulated. In Scala, you can use - * [[http://docs.scala-lang.org/overviews/core/string-interpolation.html string interpolation]] - * to achieve this: - * - * {{{ - * logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBirthday}") - * }}} - * - * Since this wrapper is implemented with macros, the String construction and method invocations - * will only occur when debug logging is enabled. - */ -class Logger private(val delegate: ExtendedLogger) extends AnyVal { - - def fatal(marker: Marker, message: Message): Unit = - macro LoggerMacro.fatalMarkerMsg - - def fatal(marker: Marker, message: CharSequence): Unit = - macro LoggerMacro.fatalMarkerCseq - - def fatal(marker: Marker, message: AnyRef): Unit = - macro LoggerMacro.fatalMarkerObject - - def fatal(marker: Marker, message: Message, cause: Throwable): Unit = - macro LoggerMacro.fatalMarkerMsgThrowable - - def fatal(marker: Marker, message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.fatalMarkerCseqThrowable - - def fatal(marker: Marker, message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.fatalMarkerObjectThrowable - - def fatal(message: Message): Unit = - macro LoggerMacro.fatalMsg - - def fatal(message: CharSequence): Unit = - macro LoggerMacro.fatalCseq - - def fatal(message: AnyRef): Unit = - macro LoggerMacro.fatalObject - - def fatal(message: Message, cause: Throwable): Unit = - macro LoggerMacro.fatalMsgThrowable - - def fatal(message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.fatalCseqThrowable - - def fatal(message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.fatalObjectThrowable - - - def error(marker: Marker, message: Message): Unit = - macro LoggerMacro.errorMarkerMsg - - def error(marker: Marker, message: CharSequence): Unit = - macro LoggerMacro.errorMarkerCseq - - def error(marker: Marker, message: AnyRef): Unit = - macro LoggerMacro.errorMarkerObject - - def error(marker: Marker, message: Message, cause: Throwable): Unit = - macro LoggerMacro.errorMarkerMsgThrowable - - def error(marker: Marker, message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.errorMarkerCseqThrowable - - def error(marker: Marker, message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.errorMarkerObjectThrowable - - def error(message: Message): Unit = - macro LoggerMacro.errorMsg - - def error(message: CharSequence): Unit = - macro LoggerMacro.errorCseq - - def error(message: AnyRef): Unit = - macro LoggerMacro.errorObject - - def error(message: Message, cause: Throwable): Unit = - macro LoggerMacro.errorMsgThrowable - - def error(message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.errorCseqThrowable - - def error(message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.errorObjectThrowable - - - def warn(marker: Marker, message: Message): Unit = - macro LoggerMacro.warnMarkerMsg - - def warn(marker: Marker, message: CharSequence): Unit = - macro LoggerMacro.warnMarkerCseq - - def warn(marker: Marker, message: AnyRef): Unit = - macro LoggerMacro.warnMarkerObject - - def warn(marker: Marker, message: Message, cause: Throwable): Unit = - macro LoggerMacro.warnMarkerMsgThrowable - - def warn(marker: Marker, message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.warnMarkerCseqThrowable - - def warn(marker: Marker, message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.warnMarkerObjectThrowable - - def warn(message: Message): Unit = - macro LoggerMacro.warnMsg - - def warn(message: CharSequence): Unit = - macro LoggerMacro.warnCseq - - def warn(message: AnyRef): Unit = - macro LoggerMacro.warnObject - - def warn(message: Message, cause: Throwable): Unit = - macro LoggerMacro.warnMsgThrowable - - def warn(message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.warnCseqThrowable - - def warn(message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.warnObjectThrowable - - - def info(marker: Marker, message: Message): Unit = - macro LoggerMacro.infoMarkerMsg - - def info(marker: Marker, message: CharSequence): Unit = - macro LoggerMacro.infoMarkerCseq - - def info(marker: Marker, message: AnyRef): Unit = - macro LoggerMacro.infoMarkerObject - - def info(marker: Marker, message: Message, cause: Throwable): Unit = - macro LoggerMacro.infoMarkerMsgThrowable - - def info(marker: Marker, message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.infoMarkerCseqThrowable - - def info(marker: Marker, message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.infoMarkerObjectThrowable - - def info(message: Message): Unit = - macro LoggerMacro.infoMsg - - def info(message: CharSequence): Unit = - macro LoggerMacro.infoCseq - - def info(message: AnyRef): Unit = - macro LoggerMacro.infoObject - - def info(message: Message, cause: Throwable): Unit = - macro LoggerMacro.infoMsgThrowable - - def info(message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.infoCseqThrowable - - def info(message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.infoObjectThrowable - - - def debug(marker: Marker, message: Message): Unit = - macro LoggerMacro.debugMarkerMsg - - def debug(marker: Marker, message: CharSequence): Unit = - macro LoggerMacro.debugMarkerCseq - - def debug(marker: Marker, message: AnyRef): Unit = - macro LoggerMacro.debugMarkerObject - - def debug(marker: Marker, message: Message, cause: Throwable): Unit = - macro LoggerMacro.debugMarkerMsgThrowable - - def debug(marker: Marker, message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.debugMarkerCseqThrowable - - def debug(marker: Marker, message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.debugMarkerObjectThrowable - - def debug(message: Message): Unit = - macro LoggerMacro.debugMsg - - def debug(message: CharSequence): Unit = - macro LoggerMacro.debugCseq - - def debug(message: AnyRef): Unit = - macro LoggerMacro.debugObject - - def debug(message: Message, cause: Throwable): Unit = - macro LoggerMacro.debugMsgThrowable - - def debug(message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.debugCseqThrowable - - def debug(message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.debugObjectThrowable - - - def trace(marker: Marker, message: Message): Unit = - macro LoggerMacro.traceMarkerMsg - - def trace(marker: Marker, message: CharSequence): Unit = - macro LoggerMacro.traceMarkerCseq - - def trace(marker: Marker, message: AnyRef): Unit = - macro LoggerMacro.traceMarkerObject - - def trace(marker: Marker, message: Message, cause: Throwable): Unit = - macro LoggerMacro.traceMarkerMsgThrowable - - def trace(marker: Marker, message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.traceMarkerCseqThrowable - - def trace(marker: Marker, message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.traceMarkerObjectThrowable - - def trace(message: Message): Unit = - macro LoggerMacro.traceMsg - - def trace(message: CharSequence): Unit = - macro LoggerMacro.traceCseq - - def trace(message: AnyRef): Unit = - macro LoggerMacro.traceObject - - def trace(message: Message, cause: Throwable): Unit = - macro LoggerMacro.traceMsgThrowable - - def trace(message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.traceCseqThrowable - - def trace(message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.traceObjectThrowable - - - /** - * Logs a `Message` with the specific `Marker` at the given `Level`. - * - * @param level the logging level - * @param marker the marker data specific to this log statement - * @param message the message to be logged - */ - def apply(level: Level, marker: Marker, message: Message): Unit = - macro LoggerMacro.logMarkerMsg - - /** - * Logs a string with the specific `Marker` at the given `Level`. - * - * @param level the logging level - * @param marker the marker data specific to this log statement - * @param message the message to be logged - */ - def apply(level: Level, marker: Marker, message: CharSequence): Unit = - macro LoggerMacro.logMarkerCseq - - /** - * Logs an object with the specific `Marker` at the given `Level`. - * - * @param level the logging level - * @param marker the marker data specific to this log statement - * @param message the message to be logged - */ - def apply(level: Level, marker: Marker, message: AnyRef): Unit = - macro LoggerMacro.logMarkerObject - - /** - * Logs a `Message` with the specific `Marker` at the given `Level` including the stack trace - * of the given `Throwable`. - * - * @param level the logging level - * @param marker the marker data specific to this log statement - * @param message the message to be logged - * @param cause the cause - */ - def apply(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = - macro LoggerMacro.logMarkerMsgThrowable - - /** - * Logs a string with the specific `Marker` at the given `Level` including the stack trace - * of the given `Throwable`. - * - * @param level the logging level - * @param marker the marker data specific to this log statement - * @param message the message to be logged - * @param cause the cause - */ - def apply(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.logMarkerCseqThrowable - - /** - * Logs an object with the specific `Marker` at the given `Level` including the stack trace - * of the given `Throwable`. - * - * @param level the logging level - * @param marker the marker data specific to this log statement - * @param message the message to be logged - * @param cause the cause - */ - def apply(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.logMarkerObjectThrowable - - /** - * Logs a `Message` at the given `Level`. - * - * @param level the logging level - * @param message the message to be logged - */ - def apply(level: Level, message: Message): Unit = - macro LoggerMacro.logMsg - - /** - * Logs a string at the given `Level`. - * - * @param level the logging level - * @param message the message to be logged - */ - def apply(level: Level, message: CharSequence): Unit = - macro LoggerMacro.logCseq - - /** - * Logs an object at the given `Level`. - * - * @param level the logging level - * @param message the message to be logged - */ - def apply(level: Level, message: AnyRef): Unit = - macro LoggerMacro.logObject - - /** - * Logs a `Message` at the given `Level` including the stack trace of the given `Throwable`. - * - * @param level the logging level - * @param message the message to be logged - * @param cause a `Throwable` - */ - def apply(level: Level, message: Message, cause: Throwable): Unit = - macro LoggerMacro.logMsgThrowable - - /** - * Logs a string at the given `Level` including the stack trace of the given `Throwable`. - * - * @param level the logging level - * @param message the message to be logged - * @param cause a `Throwable` - */ - def apply(level: Level, message: CharSequence, cause: Throwable): Unit = - macro LoggerMacro.logCseqThrowable - - /** - * Logs an object at the given `Level` including the stack trace of the given `Throwable`. - * - * @param level the logging level - * @param message the message to be logged - * @param cause a `Throwable` - */ - def apply(level: Level, message: AnyRef, cause: Throwable): Unit = - macro LoggerMacro.logObjectThrowable - - - /** - * Logs entry to a method. Used when the method in question has no parameters or when the parameters should not be - * logged. - * - * @return The built `EntryMessage` - */ - def traceEntry(): EntryMessage = - macro LoggerMacro.traceEntry - - /** - * Logs entry to a method along with its parameters. - * - * {{{ - * def doSomething(foo: String, bar: Int): Unit = { - * logger.traceEntry(foo, bar) - * // do something - * } - * }}} - * - * @param params the parameters to the method. - * @return The built `EntryMessage` - */ - def traceEntry(params: AnyRef*): EntryMessage = - macro LoggerMacro.traceEntryParams - - /** - * Logs entry to a method using a `Message` to describe the parameters. - * - * {{{ - * def doSomething(foo: Request): Unit = { - * logger.traceEntry(JsonMessage(foo)) - * // do something - * } - * }}} - * - * @param message the message - * @return The built `EntryMessage` - */ - def traceEntry(message: Message): EntryMessage = - macro LoggerMacro.traceEntryMessage - - /** - * Logs exit from a method with no result. - */ - def traceExit(): Unit = - macro LoggerMacro.traceExit - - /** - * Logs exiting from a method with result. - * - * @param result The result being returned from the method call - * @return `result` - */ - def traceExit[R](result: R): R = - macro LoggerMacro.traceExitResult[R] - - /** - * Logs exiting from a method with no result. - * - * @param entryMessage the `EntryMessage` returned from one of the `traceEntry` methods - */ - def traceExit(entryMessage: EntryMessage): Unit = - macro LoggerMacro.traceExitEntryMessage - - /** - * Logs exiting from a method with result. - * - * {{{ - * def doSomething(foo: String, bar: Int): Int = { - * val entryMessage = logger.traceEntry(foo, bar) - * // do something - * traceExit(entryMessage, value) - * } - * }}} - * - * @param entryMessage the `EntryMessage` returned from one of the `traceEntry` methods - * @param result The result being returned from the method call - * @return `result` - */ - def traceExit[R](entryMessage: EntryMessage, result: R): R = - macro LoggerMacro.traceExitEntryMessageResult[R] - - /** - * Logs exiting from a method with result. Allows custom formatting of the result. - * - * @param message the Message containing the formatted result - * @param result The result being returned from the method call. - * @return `result` - */ - def traceExit[R](message: Message, result: R): R = - macro LoggerMacro.traceExitMessageResult[R] - - /** - * Logs an exception or error to be thrown. - * - * {{{ - * throw logger.throwing(myException) - * }}} - * - * @param t the Throwable - * @return `t` - */ - def throwing[T <: Throwable](t: T): T = - macro LoggerMacro.throwing[T] - - /** - * Logs an exception or error to be thrown to a specific logging level. - * - * {{{ - * throw logger.throwing(Level.DEBUG, myException) - * }}} - * - * @param level the logging Level. - * @param t the Throwable - * @return `t` - */ - def throwing[T <: Throwable](level: Level, t: T): T = - macro LoggerMacro.throwingLevel[T] - - /** - * Logs an exception or error that has been caught. - * - * @param t the Throwable. - */ - def catching(t: Throwable): Unit = - macro LoggerMacro.catching - - /** - * Logs an exception or error that has been caught to a specific logging level. - * - * @param level The logging Level. - * @param t The Throwable. - */ - def catching(level: Level, t: Throwable): Unit = - macro LoggerMacro.catchingLevel - - - /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified - * level is enabled. - * - * Should normally not be used directly from application code, but needs to be public for access by macros. - * - * @param level log level - * @param marker marker or `null` - * @param message message - * @param cause cause or `null` - */ - def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = { - delegate.logMessage(Logger.FQCN, level, marker, message, cause) - } - - /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified - * level is enabled. - * - * Should normally not be used directly from application code, but needs to be public for access by macros. - * - * @param level log level - * @param marker marker or `null` - * @param message message - * @param cause cause or `null` - */ - def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = { - delegate.logMessage(Logger.FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause) - } - - /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified - * level is enabled. - * - * Should normally not be used directly from application code, but needs to be public for access by macros. - * - * @param level log level - * @param marker marker or `null` - * @param message message - * @param cause cause or `null` - */ - def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = { - delegate.logMessage(Logger.FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause) - } - -} http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/blob/72fe94f7/api/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala ---------------------------------------------------------------------- diff --git a/api/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala b/api/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala deleted file mode 100644 index 3b54db1..0000000 --- a/api/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala +++ /dev/null @@ -1,425 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache license, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the license for the specific language governing permissions and - * limitations under the license. - */ -package org.apache.logging.log4j.scala - -import org.apache.logging.log4j.message.{EntryMessage, Message} -import org.apache.logging.log4j.spi.AbstractLogger -import org.apache.logging.log4j.{Level, Marker} - -import scala.language.experimental.macros -import scala.reflect.macros.blackbox - -/** - * Inspired from [[https://github.com/typesafehub/scalalogging ScalaLogging]]. - */ -private object LoggerMacro { - - type LoggerContext = blackbox.Context { type PrefixType = Logger } - - - def fatalMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.FATAL), marker, message) - - def fatalMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.FATAL), marker, message) - - def fatalMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.FATAL), marker, message) - - def fatalMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.FATAL), marker, message, cause) - - def fatalMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.FATAL), marker, message, cause) - - def fatalMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.FATAL), marker, message, cause) - - def fatalMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.FATAL), message) - - def fatalCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.FATAL), message) - - def fatalObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.FATAL), message) - - def fatalMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.FATAL), message, cause) - - def fatalCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.FATAL), message, cause) - - def fatalObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.FATAL), message, cause) - - - def errorMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.ERROR), marker, message) - - def errorMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.ERROR), marker, message) - - def errorMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.ERROR), marker, message) - - def errorMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.ERROR), marker, message, cause) - - def errorMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.ERROR), marker, message, cause) - - def errorMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.ERROR), marker, message, cause) - - def errorMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.ERROR), message) - - def errorCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.ERROR), message) - - def errorObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.ERROR), message) - - def errorMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.ERROR), message, cause) - - def errorCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.ERROR), message, cause) - - def errorObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.ERROR), message, cause) - - - def warnMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.WARN), marker, message) - - def warnMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.WARN), marker, message) - - def warnMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.WARN), marker, message) - - def warnMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.WARN), marker, message, cause) - - def warnMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.WARN), marker, message, cause) - - def warnMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.WARN), marker, message, cause) - - def warnMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.WARN), message) - - def warnCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.WARN), message) - - def warnObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.WARN), message) - - def warnMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.WARN), message, cause) - - def warnCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.WARN), message, cause) - - def warnObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.WARN), message, cause) - - - def infoMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.INFO), marker, message) - - def infoMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.INFO), marker, message) - - def infoMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.INFO), marker, message) - - def infoMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.INFO), marker, message, cause) - - def infoMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.INFO), marker, message, cause) - - def infoMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.INFO), marker, message, cause) - - def infoMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.INFO), message) - - def infoCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.INFO), message) - - def infoObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.INFO), message) - - def infoMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.INFO), message, cause) - - def infoCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.INFO), message, cause) - - def infoObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.INFO), message, cause) - - - def debugMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.DEBUG), marker, message) - - def debugMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.DEBUG), marker, message) - - def debugMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.DEBUG), marker, message) - - def debugMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.DEBUG), marker, message, cause) - - def debugMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.DEBUG), marker, message, cause) - - def debugMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.DEBUG), marker, message, cause) - - def debugMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.DEBUG), message) - - def debugCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.DEBUG), message) - - def debugObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.DEBUG), message) - - def debugMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.DEBUG), message, cause) - - def debugCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.DEBUG), message, cause) - - def debugObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.DEBUG), message, cause) - - - def traceMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) = - logMarkerMsg(c)(c.universe.reify(Level.TRACE), marker, message) - - def traceMarkerCseq(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - logMarkerCseq(c)(c.universe.reify(Level.TRACE), marker, message) - - def traceMarkerObject(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - logMarkerObject(c)(c.universe.reify(Level.TRACE), marker, message) - - def traceMarkerMsgThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMarkerMsgThrowable(c)(c.universe.reify(Level.TRACE), marker, message, cause) - - def traceMarkerCseqThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logMarkerCseqThrowable(c)(c.universe.reify(Level.TRACE), marker, message, cause) - - def traceMarkerObjectThrowable(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logMarkerObjectThrowable(c)(c.universe.reify(Level.TRACE), marker, message, cause) - - def traceMsg(c: LoggerContext)(message: c.Expr[Message]) = - logMsg(c)(c.universe.reify(Level.TRACE), message) - - def traceCseq(c: LoggerContext)(message: c.Expr[CharSequence]) = - logCseq(c)(c.universe.reify(Level.TRACE), message) - - def traceObject(c: LoggerContext)(message: c.Expr[AnyRef]) = - logObject(c)(c.universe.reify(Level.TRACE), message) - - def traceMsgThrowable(c: LoggerContext)(message: c.Expr[Message], cause: c.Expr[Throwable]) = - logMsgThrowable(c)(c.universe.reify(Level.TRACE), message, cause) - - def traceCseqThrowable(c: LoggerContext)(message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - logCseqThrowable(c)(c.universe.reify(Level.TRACE), message, cause) - - def traceObjectThrowable(c: LoggerContext)(message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - logObjectThrowable(c)(c.universe.reify(Level.TRACE), message, cause) - - - def logMarkerMsg(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[Message]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, null) - } - ) - - def logMarkerCseq(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[CharSequence]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, null) - } - ) - - def logMarkerObject(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[AnyRef]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, null) - } - ) - - def logMarkerMsgThrowable(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, cause.splice) - } - ) - - def logMarkerCseqThrowable(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, cause.splice) - } - ) - - def logMarkerObjectThrowable(c: LoggerContext)(level: c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice, marker.splice)) { - c.prefix.splice.logMessage(level.splice, marker.splice, message.splice, cause.splice) - } - ) - - def logMsg(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[Message]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, null) - } - ) - - def logCseq(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[CharSequence]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, null) - } - ) - - def logObject(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[AnyRef]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, null) - } - ) - - def logMsgThrowable(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[Message], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, cause.splice) - } - ) - - def logCseqThrowable(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[CharSequence], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, cause.splice) - } - ) - - def logObjectThrowable(c: LoggerContext)(level: c.Expr[Level], message: c.Expr[AnyRef], cause: c.Expr[Throwable]) = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(level.splice)) { - c.prefix.splice.logMessage(level.splice, null, message.splice, cause.splice) - } - ) - - - def traceEntry(c: LoggerContext)(): c.Expr[EntryMessage] = - c.universe.reify( - c.prefix.splice.delegate.traceEntry() - ) - - def traceEntryParams(c: LoggerContext)(params: c.Expr[AnyRef]*): c.Expr[EntryMessage] = { - import c.universe._ - val isEnabled = Apply( - Select(Select(c.prefix.tree, TermName("delegate")), TermName("isEnabled")), - List( - reify(Level.TRACE).tree, - reify(AbstractLogger.ENTRY_MARKER).tree, - reify(null: AnyRef).tree, - reify(null).tree - ) - ) - - val log = Apply( - Select(Select(c.prefix.tree, TermName("delegate")), TermName("traceEntry")), - reify(null: String).tree :: (params map (_.tree)).toList - ) - c.Expr[EntryMessage](If(isEnabled, log, reify(null).tree)) - } - - - def traceEntryMessage(c: LoggerContext)(message: c.Expr[Message]): c.Expr[EntryMessage] = - c.universe.reify( - if (c.prefix.splice.delegate.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null: AnyRef, null)) { - c.prefix.splice.delegate.traceEntry(message.splice) // TODO should not do ifEnabled check - } else { - null - } - ) - - def traceExit(c: LoggerContext)(): c.Expr[Unit] = - c.universe.reify( - c.prefix.splice.delegate.traceExit() - ) - - def traceExitResult[R: c.WeakTypeTag](c: LoggerContext)(result: c.Expr[R]): c.Expr[R] = - c.universe.reify( - c.prefix.splice.delegate.traceExit(result.splice) - ) - - def traceExitEntryMessage(c: LoggerContext)(entryMessage: c.Expr[EntryMessage]): c.Expr[Unit] = - c.universe.reify( - c.prefix.splice.delegate.traceExit(entryMessage.splice) - ) - - def traceExitEntryMessageResult[R: c.WeakTypeTag](c: LoggerContext)(entryMessage: c.Expr[EntryMessage], result: c.Expr[R]): c.Expr[R] = - c.universe.reify( - c.prefix.splice.delegate.traceExit(entryMessage.splice, result.splice) - ) - - def traceExitMessageResult[R: c.WeakTypeTag](c: LoggerContext)(message: c.Expr[Message], result: c.Expr[R]): c.Expr[R] = - c.universe.reify( - { - if (message.splice != null && c.prefix.splice.delegate.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, message.splice, null)) { - c.prefix.splice.delegate.traceExit(message.splice, result.splice) // TODO should not do ifEnabled check - } - result.splice - } - ) - - def throwing[T <: Throwable: c.WeakTypeTag](c: LoggerContext)(t: c.Expr[T]): c.Expr[T] = - c.universe.reify( - c.prefix.splice.delegate.throwing(t.splice) - ) - - def throwingLevel[T <: Throwable: c.WeakTypeTag](c: LoggerContext)(level: c.Expr[Level], t: c.Expr[T]): c.Expr[T] = - c.universe.reify( - c.prefix.splice.delegate.throwing(level.splice, t.splice) - ) - - def catching(c: LoggerContext)(t: c.Expr[Throwable]): c.Expr[Unit] = - c.universe.reify( - c.prefix.splice.delegate.catching(t.splice) - ) - - def catchingLevel(c: LoggerContext)(level: c.Expr[Level], t: c.Expr[Throwable]): c.Expr[Unit] = - c.universe.reify( - c.prefix.splice.delegate.catching(level.splice, t.splice) - ) - -} http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/blob/72fe94f7/api/src/main/scala/org/apache/logging/log4j/scala/Logging.scala ---------------------------------------------------------------------- diff --git a/api/src/main/scala/org/apache/logging/log4j/scala/Logging.scala b/api/src/main/scala/org/apache/logging/log4j/scala/Logging.scala deleted file mode 100644 index b017de7..0000000 --- a/api/src/main/scala/org/apache/logging/log4j/scala/Logging.scala +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache license, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the license for the specific language governing permissions and - * limitations under the license. - */ -package org.apache.logging.log4j.scala - -/** - * Mix in this trait into classes from which you want to log, - * give you a `logger` value with a [[Logger]] named according to the class. - */ -trait Logging { - - /** - * A [[Logger]] named according to the class. - */ - protected val logger: Logger = Logger(getClass) - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/logging-log4j-scala/blob/72fe94f7/api/src/main/scala/org/apache/logging/log4j/scala/LoggingContext.scala ---------------------------------------------------------------------- diff --git a/api/src/main/scala/org/apache/logging/log4j/scala/LoggingContext.scala b/api/src/main/scala/org/apache/logging/log4j/scala/LoggingContext.scala deleted file mode 100644 index 79efecc..0000000 --- a/api/src/main/scala/org/apache/logging/log4j/scala/LoggingContext.scala +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache license, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the license for the specific language governing permissions and - * limitations under the license. - */ -package org.apache.logging.log4j.scala - -import org.apache.logging.log4j.ThreadContext - -import scala.collection.JavaConverters._ -import scala.collection.{immutable, mutable} - -/** Manages the context data (context map, MDC) that is added to log events. - * - * A wrapper around `org.apache.logging.log4j.ThreadContext`. - */ -object LoggingContext extends mutable.Map[String, String] { - - override def +=(kv: (String, String)): LoggingContext.this.type = { - ThreadContext.put(kv._1, kv._2) - this - } - - override def +=(elem1: (String, String), elem2: (String, String), elems: (String, String)*): LoggingContext.this.type = { - val builder = immutable.Map.newBuilder[String,String] - builder += elem1 - builder += elem2 - builder ++= elems - ThreadContext.putAll(builder.result.asJava) - this - } - - override def ++=(xs: TraversableOnce[(String, String)]): LoggingContext.this.type = { - ThreadContext.putAll(xs.toMap.asJava) - this - } - - override def -=(key: String): LoggingContext.this.type = { - ThreadContext.remove(key) - this - } - - override def -=(elem1: String, elem2: String, elems: String*): LoggingContext.this.type = { - val builder = immutable.Seq.newBuilder[String] - builder += elem1 - builder += elem2 - builder ++= elems - ThreadContext.removeAll(builder.result.asJava) - this - } - - override def --=(xs: TraversableOnce[String]): LoggingContext.this.type = { - ThreadContext.removeAll(xs.toSeq.asJava) - this - } - - override def clear(): Unit = { - ThreadContext.clearMap() - } - - override def contains(key: String): Boolean = ThreadContext.containsKey(key) - - override def get(key: String): Option[String] = Option(ThreadContext.get(key)) - - override def iterator: Iterator[(String, String)] = ThreadContext.getImmutableContext.asScala.iterator - - override def foreach[U](f: ((String, String)) => U): Unit = ThreadContext.getImmutableContext.asScala.foreach(f) - - override def size: Int = ThreadContext.getImmutableContext.size() - - override def isEmpty: Boolean = ThreadContext.isEmpty - -}
