You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by mi...@apache.org on 2016/06/19 20:01:32 UTC
[39/40] logging-log4j2 git commit: Use more macros
Use more macros
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f99223e4
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f99223e4
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f99223e4
Branch: refs/heads/LOG4J-1181
Commit: f99223e4a616bbd23bfe1a63f608d7af6dd0c044
Parents: 2b71356
Author: Mikael St�ldal <mi...@magine.com>
Authored: Sun Jun 19 21:52:27 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Sun Jun 19 21:52:27 2016 +0200
----------------------------------------------------------------------
.../org/apache/logging/log4j/scala/Logger.scala | 16 +++++++--
.../logging/log4j/scala/LoggerMacro.scala | 36 +++++++++++++++-----
.../apache/logging/log4j/scala/LoggerTest.scala | 29 +++++++++++++++-
.../org/apache/logging/log4j/scala/Logger.scala | 16 +++++++--
.../logging/log4j/scala/LoggerMacro.scala | 34 ++++++++++++++----
.../apache/logging/log4j/scala/LoggerTest.scala | 29 +++++++++++++++-
6 files changed, 137 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f99223e4/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logger.scala b/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
index 7284f84..182e29a 100644
--- a/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
+++ b/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
@@ -298,7 +298,8 @@ class Logger(val delegate: ExtendedLogger) {
def traceEntry(params: Any*): EntryMessage =
macro LoggerMacro.traceEntryParams
- def traceEntry(message: Message): EntryMessage = delegate.traceEntry(message)
+ def traceEntry(message: Message): EntryMessage =
+ macro LoggerMacro.traceEntryMessage
def traceExit(): Unit = delegate.traceExit()
@@ -308,7 +309,8 @@ class Logger(val delegate: ExtendedLogger) {
def traceExit[R](entryMessage: EntryMessage, result: R): R = delegate.traceExit(entryMessage, result)
- def traceExit[R](message: Message, result: R): R = delegate.traceExit(message, result)
+ def traceExit[R](message: Message, result: R): R =
+ macro LoggerMacro.traceExitMessageResult[R]
def throwing[T <: Throwable](t: T): T = delegate.throwing(t)
@@ -362,8 +364,16 @@ class Logger(val delegate: ExtendedLogger) {
delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
}
- private[scala] def traceEntryWithParams(params: Any*): EntryMessage = {
+ private[scala] def traceEntryParams(params: Any*): EntryMessage = {
delegate.traceEntry(null, params) // TODO should not do ifEnabled check
}
+ private[scala] def traceEntryMessage(message: Message): EntryMessage = {
+ delegate.traceEntry(message) // TODO should not do ifEnabled check
+ }
+
+ private[scala] def traceExitMessageResult[R](message: Message, result: R): Unit = {
+ delegate.traceExit(message, result) // TODO should not do ifEnabled check
+ }
+
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f99223e4/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala b/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
index a1ebee7..5f119bb 100644
--- a/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
+++ b/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
@@ -25,7 +25,7 @@ import scala.reflect.macros.Context
private object LoggerMacro {
- type LoggerContext = Context { type PrefixType = Logger }
+ type LoggerContext = Context {type PrefixType = Logger}
def fatalMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker], message: c.Expr[Message]) =
@@ -36,7 +36,7 @@ private object LoggerMacro {
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)
@@ -45,7 +45,7 @@ private object LoggerMacro {
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)
@@ -249,7 +249,7 @@ private object LoggerMacro {
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)) {
@@ -270,7 +270,7 @@ private object LoggerMacro {
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)) {
@@ -291,7 +291,7 @@ private object LoggerMacro {
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)) {
@@ -312,7 +312,7 @@ private object LoggerMacro {
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)) {
@@ -334,6 +334,7 @@ private object LoggerMacro {
}
)
+
def traceEntryParams(c: LoggerContext)(params: c.Expr[Any]*): c.Expr[EntryMessage] = {
import c.universe._
val isEnabled = Apply(
@@ -347,10 +348,29 @@ private object LoggerMacro {
)
val log = Apply(
- Select(c.prefix.tree, newTermName("traceEntryWithParams")),
+ Select(c.prefix.tree, newTermName("traceEntryParams")),
(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.asInstanceOf[AnyRef], null)) {
+ c.prefix.splice.traceEntryMessage(message.splice)
+ } else {
+ null
+ }
+ )
+
+ 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.traceExitMessageResult(message.splice, result.splice)
+ }
+ result.splice
+ }
+ )
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f99223e4/log4j-api-scala_2.10/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.10/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala b/log4j-api-scala_2.10/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala
index 359281e..3bd4b49 100644
--- a/log4j-api-scala_2.10/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala
+++ b/log4j-api-scala_2.10/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala
@@ -40,6 +40,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
val objectMsg = Custom(17)
val cause = new RuntimeException("cause")
val marker = MarkerManager.getMarker("marker")
+ val result = "foo"
def fixture =
new {
@@ -452,10 +453,36 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
verify(f.mockLogger).traceEntry()
}
- test("traceEntry with message") {
+ test("traceEntry enabled with message") {
val f = fixture
+ when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
val logger = new Logger(f.mockLogger)
logger.traceEntry(msg)
verify(f.mockLogger).traceEntry(eqv(msg))
}
+
+ test("traceEntry disabled with message") {
+ val f = fixture
+ when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
+ val logger = new Logger(f.mockLogger)
+ logger.traceEntry(msg)
+ verify(f.mockLogger, never).traceEntry(any[Message])
+ }
+
+ test("traceExit enabled with message") {
+ val f = fixture
+ when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+ val logger = new Logger(f.mockLogger)
+ logger.traceExit(msg, result)
+ verify(f.mockLogger).traceExit(eqv(msg), eqv(result))
+ }
+
+ test("traceExit disabled with message") {
+ val f = fixture
+ when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+ val logger = new Logger(f.mockLogger)
+ logger.traceExit(msg, result)
+ verify(f.mockLogger, never).traceExit(any[Message], any[AnyRef])
+ }
+
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f99223e4/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala b/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
index 7284f84..182e29a 100644
--- a/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
+++ b/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
@@ -298,7 +298,8 @@ class Logger(val delegate: ExtendedLogger) {
def traceEntry(params: Any*): EntryMessage =
macro LoggerMacro.traceEntryParams
- def traceEntry(message: Message): EntryMessage = delegate.traceEntry(message)
+ def traceEntry(message: Message): EntryMessage =
+ macro LoggerMacro.traceEntryMessage
def traceExit(): Unit = delegate.traceExit()
@@ -308,7 +309,8 @@ class Logger(val delegate: ExtendedLogger) {
def traceExit[R](entryMessage: EntryMessage, result: R): R = delegate.traceExit(entryMessage, result)
- def traceExit[R](message: Message, result: R): R = delegate.traceExit(message, result)
+ def traceExit[R](message: Message, result: R): R =
+ macro LoggerMacro.traceExitMessageResult[R]
def throwing[T <: Throwable](t: T): T = delegate.throwing(t)
@@ -362,8 +364,16 @@ class Logger(val delegate: ExtendedLogger) {
delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
}
- private[scala] def traceEntryWithParams(params: Any*): EntryMessage = {
+ private[scala] def traceEntryParams(params: Any*): EntryMessage = {
delegate.traceEntry(null, params) // TODO should not do ifEnabled check
}
+ private[scala] def traceEntryMessage(message: Message): EntryMessage = {
+ delegate.traceEntry(message) // TODO should not do ifEnabled check
+ }
+
+ private[scala] def traceExitMessageResult[R](message: Message, result: R): Unit = {
+ delegate.traceExit(message, result) // TODO should not do ifEnabled check
+ }
+
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f99223e4/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala b/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
index 2105ad9..25fc5cf 100644
--- a/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
+++ b/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
@@ -36,7 +36,7 @@ private object LoggerMacro {
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)
@@ -45,7 +45,7 @@ private object LoggerMacro {
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)
@@ -249,7 +249,7 @@ private object LoggerMacro {
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)) {
@@ -270,7 +270,7 @@ private object LoggerMacro {
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)) {
@@ -291,7 +291,7 @@ private object LoggerMacro {
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)) {
@@ -312,7 +312,7 @@ private object LoggerMacro {
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)) {
@@ -334,6 +334,7 @@ private object LoggerMacro {
}
)
+
def traceEntryParams(c: LoggerContext)(params: c.Expr[Any]*): c.Expr[EntryMessage] = {
import c.universe._
val isEnabled = Apply(
@@ -347,10 +348,29 @@ private object LoggerMacro {
)
val log = Apply(
- Select(c.prefix.tree, newTermName("traceEntryWithParams")),
+ Select(c.prefix.tree, newTermName("traceEntryParams")),
(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.asInstanceOf[AnyRef], null)) {
+ c.prefix.splice.traceEntryMessage(message.splice)
+ } else {
+ null
+ }
+ )
+
+ 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.traceExitMessageResult(message.splice, result.splice)
+ }
+ result.splice
+ }
+ )
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f99223e4/log4j-api-scala_2.11/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala b/log4j-api-scala_2.11/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala
index 359281e..3bd4b49 100644
--- a/log4j-api-scala_2.11/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala
+++ b/log4j-api-scala_2.11/src/test/scala/org/apache/logging/log4j/scala/LoggerTest.scala
@@ -40,6 +40,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
val objectMsg = Custom(17)
val cause = new RuntimeException("cause")
val marker = MarkerManager.getMarker("marker")
+ val result = "foo"
def fixture =
new {
@@ -452,10 +453,36 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
verify(f.mockLogger).traceEntry()
}
- test("traceEntry with message") {
+ test("traceEntry enabled with message") {
val f = fixture
+ when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
val logger = new Logger(f.mockLogger)
logger.traceEntry(msg)
verify(f.mockLogger).traceEntry(eqv(msg))
}
+
+ test("traceEntry disabled with message") {
+ val f = fixture
+ when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
+ val logger = new Logger(f.mockLogger)
+ logger.traceEntry(msg)
+ verify(f.mockLogger, never).traceEntry(any[Message])
+ }
+
+ test("traceExit enabled with message") {
+ val f = fixture
+ when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+ val logger = new Logger(f.mockLogger)
+ logger.traceExit(msg, result)
+ verify(f.mockLogger).traceExit(eqv(msg), eqv(result))
+ }
+
+ test("traceExit disabled with message") {
+ val f = fixture
+ when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+ val logger = new Logger(f.mockLogger)
+ logger.traceExit(msg, result)
+ verify(f.mockLogger, never).traceExit(any[Message], any[AnyRef])
+ }
+
}