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/08/27 11:50:16 UTC

[01/50] logging-log4j2 git commit: Make internal method package-private

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 350887ea8 -> 139f57baf


Make internal method package-private


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2cc9c792
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2cc9c792
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2cc9c792

Branch: refs/heads/master
Commit: 2cc9c79257f0d0fe41120b8e5c2654c1da9342e5
Parents: 443251b
Author: Mikael St�ldal <mi...@magine.com>
Authored: Sat Jun 18 20:58:41 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Sat Jun 18 20:58:41 2016 +0200

----------------------------------------------------------------------
 .../scala/org/apache/logging/log4j/scala/Logger.scala   | 12 +++---------
 .../scala/org/apache/logging/log4j/scala/Logger.scala   | 12 +++---------
 2 files changed, 6 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2cc9c792/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 f8c4f51..9a25f1f 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
@@ -322,42 +322,36 @@ class Logger(val delegate: ExtendedLogger) {
   /** 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 = {
+  private[scala] def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
     delegate.logMessage(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 = {
+  private[scala] def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.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 = {
+  private[scala] def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2cc9c792/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 f8c4f51..9a25f1f 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
@@ -322,42 +322,36 @@ class Logger(val delegate: ExtendedLogger) {
   /** 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 = {
+  private[scala] def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
     delegate.logMessage(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 = {
+  private[scala] def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.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 = {
+  private[scala] def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 


[20/50] logging-log4j2 git commit: Scala API sample

Posted by mi...@apache.org.
Scala API sample


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/06e4b185
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/06e4b185
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/06e4b185

Branch: refs/heads/master
Commit: 06e4b1852d3b3a24045f85ad26e7a0ec80d115c1
Parents: 245cc32
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Mon Jun 27 16:01:11 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Mon Jun 27 16:01:11 2016 +0200

----------------------------------------------------------------------
 log4j-samples/pom.xml                           |  1 +
 log4j-samples/scala-api/pom.xml                 | 65 ++++++++++++++++++++
 .../scala-api/src/main/resources/log4j2.xml     | 32 ++++++++++
 .../logging/log4j/scalasample/LoggingApp.scala  | 10 +++
 pom.xml                                         | 10 +++
 5 files changed, 118 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/06e4b185/log4j-samples/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-samples/pom.xml b/log4j-samples/pom.xml
index 0da9a2b..33481c6 100644
--- a/log4j-samples/pom.xml
+++ b/log4j-samples/pom.xml
@@ -83,6 +83,7 @@
     <module>flume-embedded</module>
     <module>configuration</module>
     <module>loggerProperties</module>
+    <module>scala-api</module>
   </modules>
   <build>
     <plugins>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/06e4b185/log4j-samples/scala-api/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/pom.xml b/log4j-samples/scala-api/pom.xml
new file mode 100644
index 0000000..a0f87ab
--- /dev/null
+++ b/log4j-samples/scala-api/pom.xml
@@ -0,0 +1,65 @@
+<?xml version="1.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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>log4j-samples</artifactId>
+    <groupId>org.apache.logging.log4j.samples</groupId>
+    <version>2.6.2-SNAPSHOT</version>
+  </parent>
+  <artifactId>log4j-samples-scala-api</artifactId>
+  <packaging>jar</packaging>
+  <name>Apache Log4j Samples: Scala API</name>
+  <url>http://http://logging.apache.org/log4j/2.x/</url>
+  <properties>
+    <scala.version>2.11.7</scala.version>
+    <scala.maven.plugin.version>3.2.2</scala.maven.plugin.version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api-scala_2.11</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <sourceDirectory>src/main/scala</sourceDirectory>
+    <plugins>
+      <plugin>
+        <groupId>net.alchim31.maven</groupId>
+        <artifactId>scala-maven-plugin</artifactId>
+        <version>${scala.maven.plugin.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>compile</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+</project>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/06e4b185/log4j-samples/scala-api/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/src/main/resources/log4j2.xml b/log4j-samples/scala-api/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..f5b89b4
--- /dev/null
+++ b/log4j-samples/scala-api/src/main/resources/log4j2.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+
+-->
+<Configuration name="ScalaApiSample" status="error">
+    <Appenders>
+        <Console name="Console">
+            <PatternLayout>
+                <Pattern>%d %5p [%t] %c{1} %X - %m%n</Pattern>
+            </PatternLayout>
+        </Console>
+    </Appenders>
+    <Loggers>
+        <Root level="INFO">
+            <AppenderRef ref="Console"/>
+        </Root>
+    </Loggers>
+</Configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/06e4b185/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
new file mode 100644
index 0000000..b50c83b
--- /dev/null
+++ b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
@@ -0,0 +1,10 @@
+package org.apache.logging.log4j.scalasample
+
+import org.apache.logging.log4j.scala.Logging
+
+object LoggingApp extends App with Logging {
+
+  val i = 17
+  logger.info(s"Hello, world: $i")
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/06e4b185/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 00416d5..7897e5a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -372,6 +372,16 @@
         <version>${project.version}</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api-scala_2.10</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api-scala_2.11</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
         <groupId>com.sleepycat</groupId>
         <artifactId>je</artifactId>
         <version>5.0.73</version>


[11/50] logging-log4j2 git commit: Add ScalaDoc and factory object

Posted by mi...@apache.org.
Add ScalaDoc and factory object


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/8a47e9a4
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/8a47e9a4
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/8a47e9a4

Branch: refs/heads/master
Commit: 8a47e9a4b8ff093c2bce5d866446f982f9186ee7
Parents: 89155dc
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sun Jun 26 18:13:16 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sun Jun 26 18:13:16 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala | 253 ++++++++++++++++++-
 .../apache/logging/log4j/scala/Logging.scala    |  12 +-
 .../org/apache/logging/log4j/scala/Logger.scala | 253 ++++++++++++++++++-
 .../apache/logging/log4j/scala/Logging.scala    |  12 +-
 src/site/xdoc/manual/scala-api.xml              |   3 +-
 5 files changed, 520 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8a47e9a4/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 182e29a..16156f4 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
@@ -18,11 +18,49 @@ 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, Marker}
+import org.apache.logging.log4j.{Level, LogManager, Marker}
 
 import scala.language.experimental.macros
 
-class Logger(val delegate: ExtendedLogger) {
+/**
+  * Factory for [[Logger]]s.
+  *
+  * The [[Logging]] trait provides a simple way to get a properly named logger into a class.
+  */
+object Logger {
+
+  /**
+    * 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 [[org.apache.logging.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.calcBrithday}")
+  * }}}
+  *
+  * 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) {
 
   private final val FQCN = classOf[Logger].getName
 
@@ -249,82 +287,293 @@ class Logger(val delegate: ExtendedLogger) {
   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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(level: Level, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logObjectThrowable
 
 
+  /**
+    * Checks whether this Logger is enabled for the the given [[Level]].
+    *
+    * Note that passing in [[Level.OFF]] always returns `true`.
+    *
+    * @param level the level to check
+    * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
+    */
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
 
+  /**
+    * Checks whether this Logger is enabled for the the given [[Level]] and [[Marker]].
+    *
+    * @param level  the level to check
+    * @param marker The marker to check
+    * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
+    */
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
 
   // TODO fix FQCN for flow logging
 
+  /**
+    * 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 = delegate.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: Any*): 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 = delegate.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 = delegate.traceExit(result)
 
+  /**
+    * Logs exiting from a method with no result.
+    *
+    * @param entryMessage the [[EntryMessage]] returned from one of the `traceEntry` methods
+    */
   def traceExit(entryMessage: EntryMessage): Unit = delegate.traceExit(entryMessage)
 
+  /**
+    * 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 = delegate.traceExit(entryMessage, result)
 
+  /**
+    * 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 = delegate.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 = delegate.throwing(level, t)
 
+  /**
+    * Logs an exception or error that has been caught.
+    *
+    * @param t the Throwable.
+    */
   def catching(t: Throwable): Unit = delegate.catching(t)
 
+  /**
+    * 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 = delegate.catching(level, t)
 
 
+  /**
+    * @return the [[Level]] associated with this Logger
+    */
   def level: Level = delegate.getLevel
 
+  /**
+    * @return the logger name
+    */
   def name: String = delegate.getName
 
+  /**
+    * @return the message factory used to convert message Objects and Strings/CharSequences into actual log Messages
+    */
   def messageFactory: MessageFactory2 = delegate.getMessageFactory.asInstanceOf[MessageFactory2]
 
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8a47e9a4/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logging.scala b/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
index 6dc5db6..b017de7 100644
--- a/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
+++ b/log4j-api-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
@@ -16,11 +16,15 @@
  */
 package org.apache.logging.log4j.scala
 
-import org.apache.logging.log4j.LogManager
-
+/**
+  * 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 {
 
-  protected val logger: Logger =
-    new Logger(LogManager.getContext(getClass.getClassLoader, false).getLogger(getClass.getName))
+  /**
+    * 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-log4j2/blob/8a47e9a4/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 182e29a..16156f4 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
@@ -18,11 +18,49 @@ 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, Marker}
+import org.apache.logging.log4j.{Level, LogManager, Marker}
 
 import scala.language.experimental.macros
 
-class Logger(val delegate: ExtendedLogger) {
+/**
+  * Factory for [[Logger]]s.
+  *
+  * The [[Logging]] trait provides a simple way to get a properly named logger into a class.
+  */
+object Logger {
+
+  /**
+    * 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 [[org.apache.logging.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.calcBrithday}")
+  * }}}
+  *
+  * 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) {
 
   private final val FQCN = classOf[Logger].getName
 
@@ -249,82 +287,293 @@ class Logger(val delegate: ExtendedLogger) {
   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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(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 log(level: Level, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logObjectThrowable
 
 
+  /**
+    * Checks whether this Logger is enabled for the the given [[Level]].
+    *
+    * Note that passing in [[Level.OFF]] always returns `true`.
+    *
+    * @param level the level to check
+    * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
+    */
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
 
+  /**
+    * Checks whether this Logger is enabled for the the given [[Level]] and [[Marker]].
+    *
+    * @param level  the level to check
+    * @param marker The marker to check
+    * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
+    */
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
 
   // TODO fix FQCN for flow logging
 
+  /**
+    * 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 = delegate.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: Any*): 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 = delegate.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 = delegate.traceExit(result)
 
+  /**
+    * Logs exiting from a method with no result.
+    *
+    * @param entryMessage the [[EntryMessage]] returned from one of the `traceEntry` methods
+    */
   def traceExit(entryMessage: EntryMessage): Unit = delegate.traceExit(entryMessage)
 
+  /**
+    * 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 = delegate.traceExit(entryMessage, result)
 
+  /**
+    * 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 = delegate.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 = delegate.throwing(level, t)
 
+  /**
+    * Logs an exception or error that has been caught.
+    *
+    * @param t the Throwable.
+    */
   def catching(t: Throwable): Unit = delegate.catching(t)
 
+  /**
+    * 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 = delegate.catching(level, t)
 
 
+  /**
+    * @return the [[Level]] associated with this Logger
+    */
   def level: Level = delegate.getLevel
 
+  /**
+    * @return the logger name
+    */
   def name: String = delegate.getName
 
+  /**
+    * @return the message factory used to convert message Objects and Strings/CharSequences into actual log Messages
+    */
   def messageFactory: MessageFactory2 = delegate.getMessageFactory.asInstanceOf[MessageFactory2]
 
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8a47e9a4/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala b/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
index 6dc5db6..b017de7 100644
--- a/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
+++ b/log4j-api-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
@@ -16,11 +16,15 @@
  */
 package org.apache.logging.log4j.scala
 
-import org.apache.logging.log4j.LogManager
-
+/**
+  * 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 {
 
-  protected val logger: Logger =
-    new Logger(LogManager.getContext(getClass.getClassLoader, false).getLogger(getClass.getName))
+  /**
+    * 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-log4j2/blob/8a47e9a4/src/site/xdoc/manual/scala-api.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/scala-api.xml b/src/site/xdoc/manual/scala-api.xml
index 555bc0d..5d4c6e5 100644
--- a/src/site/xdoc/manual/scala-api.xml
+++ b/src/site/xdoc/manual/scala-api.xml
@@ -56,7 +56,8 @@ class MyClass extends BaseClass with Logging {
                 </p>
                 <pre class="prettyprint">logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBrithday}")</pre>
                 <p>
-                    Since the Scala Logger is implemented with macros, the String construction and method invocations will only occur when debug logging is enabled.
+                    Since the Scala Logger is implemented with macros, the String construction and method invocations
+                    will only occur when debug logging is enabled.
                 </p>
 
                 <h4>Logger Names</h4>


[14/50] logging-log4j2 git commit: Fix Scaladoc

Posted by mi...@apache.org.
Fix Scaladoc


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/8f69d189
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/8f69d189
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/8f69d189

Branch: refs/heads/master
Commit: 8f69d189c0ee1581f54a2aa1b53a38554f4d9f94
Parents: 8abe19e
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Mon Jun 27 12:08:22 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Mon Jun 27 12:08:22 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala | 58 ++++++++++----------
 .../org/apache/logging/log4j/scala/Logger.scala | 58 ++++++++++----------
 2 files changed, 58 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8f69d189/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 c91d347..e57c86c 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
@@ -46,7 +46,7 @@ object Logger {
 }
 
 /**
-  * Scala wrapper for the Log4j [[org.apache.logging.log4j.Logger]] interface.
+  * 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
@@ -288,7 +288,7 @@ class Logger private(val delegate: ExtendedLogger) {
 
 
   /**
-    * Logs a [[Message]] with the specific [[Marker]] at the given [[Level]].
+    * 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
@@ -298,7 +298,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerMsg
 
   /**
-    * Logs a string with the specific [[Marker]] at the given [[Level]].
+    * 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
@@ -308,7 +308,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerCseq
 
   /**
-    * Logs an object with the specific [[Marker]] at the given [[Level]].
+    * 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
@@ -318,8 +318,8 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerObject
 
   /**
-    * Logs a [[Message]] with the specific [[Marker]] at the given [[Level]] including the stack trace
-    * of the given [[Throwable]].
+    * 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
@@ -330,8 +330,8 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerMsgThrowable
 
   /**
-    * Logs a string with the specific [[Marker]] at the given [[Level]] including the stack trace
-    * of the given [[Throwable]].
+    * 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
@@ -342,8 +342,8 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerCseqThrowable
 
   /**
-    * Logs an object with the specific [[Marker]] at the given [[Level]] including the stack trace
-    * of the given [[Throwable]].
+    * 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
@@ -354,7 +354,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerObjectThrowable
 
   /**
-    * Logs a [[Message]] at the given [[Level]].
+    * Logs a `Message` at the given `Level`.
     *
     * @param level   the logging level
     * @param message the message to be logged
@@ -363,7 +363,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMsg
 
   /**
-    * Logs a string at the given [[Level]].
+    * Logs a string at the given `Level`.
     *
     * @param level   the logging level
     * @param message the message to be logged
@@ -372,7 +372,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logCseq
 
   /**
-    * Logs an object at the given [[Level]].
+    * Logs an object at the given `Level`.
     *
     * @param level   the logging level
     * @param message the message to be logged
@@ -381,40 +381,40 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logObject
 
   /**
-    * Logs a [[Message]] at the given [[Level]] including the stack trace of the given [[Throwable]].
+    * 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]]
+    * @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]].
+    * 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]]
+    * @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]].
+    * 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]]
+    * @param cause   a `Throwable`
     */
   def apply(level: Level, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logObjectThrowable
 
 
   /**
-    * Checks whether this Logger is enabled for the the given [[Level]].
+    * Checks whether this Logger is enabled for the the given `Level`.
     *
-    * Note that passing in [[Level.OFF]] always returns `true`.
+    * Note that passing in `Level.OFF` always returns `true`.
     *
     * @param level the level to check
     * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
@@ -422,7 +422,7 @@ class Logger private(val delegate: ExtendedLogger) {
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
 
   /**
-    * Checks whether this Logger is enabled for the the given [[Level]] and [[Marker]].
+    * Checks whether this Logger is enabled for the the given `Level` and `Marker`.
     *
     * @param level  the level to check
     * @param marker The marker to check
@@ -437,7 +437,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * 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]]
+    * @return The built `EntryMessage`
     */
   def traceEntry(): EntryMessage = delegate.traceEntry()
 
@@ -452,13 +452,13 @@ class Logger private(val delegate: ExtendedLogger) {
     * }}}
     *
     * @param params the parameters to the method.
-    * @return The built [[EntryMessage]]
+    * @return The built `EntryMessage`
     */
   def traceEntry(params: Any*): EntryMessage =
   macro LoggerMacro.traceEntryParams
 
   /**
-    * Logs entry to a method using a [[Message]] to describe the parameters.
+    * Logs entry to a method using a `Message` to describe the parameters.
     *
     * {{{
     * def doSomething(foo: Request): Unit = {
@@ -468,7 +468,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * }}}
     *
     * @param message the message
-    * @return The built [[EntryMessage]]
+    * @return The built `EntryMessage`
     */
   def traceEntry(message: Message): EntryMessage =
   macro LoggerMacro.traceEntryMessage
@@ -489,7 +489,7 @@ class Logger private(val delegate: ExtendedLogger) {
   /**
     * Logs exiting from a method with no result.
     *
-    * @param entryMessage the [[EntryMessage]] returned from one of the `traceEntry` methods
+    * @param entryMessage the `EntryMessage` returned from one of the `traceEntry` methods
     */
   def traceExit(entryMessage: EntryMessage): Unit = delegate.traceExit(entryMessage)
 
@@ -504,7 +504,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * }
     * }}}
     *
-    * @param entryMessage the [[EntryMessage]] returned from one of the `traceEntry` methods
+    * @param entryMessage the `EntryMessage` returned from one of the `traceEntry` methods
     * @param result       The result being returned from the method call
     * @return `result`
     */
@@ -562,7 +562,7 @@ class Logger private(val delegate: ExtendedLogger) {
 
 
   /**
-    * @return the [[Level]] associated with this Logger
+    * @return the `Level` associated with this Logger
     */
   def level: Level = delegate.getLevel
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8f69d189/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 c91d347..e57c86c 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
@@ -46,7 +46,7 @@ object Logger {
 }
 
 /**
-  * Scala wrapper for the Log4j [[org.apache.logging.log4j.Logger]] interface.
+  * 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
@@ -288,7 +288,7 @@ class Logger private(val delegate: ExtendedLogger) {
 
 
   /**
-    * Logs a [[Message]] with the specific [[Marker]] at the given [[Level]].
+    * 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
@@ -298,7 +298,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerMsg
 
   /**
-    * Logs a string with the specific [[Marker]] at the given [[Level]].
+    * 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
@@ -308,7 +308,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerCseq
 
   /**
-    * Logs an object with the specific [[Marker]] at the given [[Level]].
+    * 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
@@ -318,8 +318,8 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerObject
 
   /**
-    * Logs a [[Message]] with the specific [[Marker]] at the given [[Level]] including the stack trace
-    * of the given [[Throwable]].
+    * 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
@@ -330,8 +330,8 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerMsgThrowable
 
   /**
-    * Logs a string with the specific [[Marker]] at the given [[Level]] including the stack trace
-    * of the given [[Throwable]].
+    * 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
@@ -342,8 +342,8 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerCseqThrowable
 
   /**
-    * Logs an object with the specific [[Marker]] at the given [[Level]] including the stack trace
-    * of the given [[Throwable]].
+    * 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
@@ -354,7 +354,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMarkerObjectThrowable
 
   /**
-    * Logs a [[Message]] at the given [[Level]].
+    * Logs a `Message` at the given `Level`.
     *
     * @param level   the logging level
     * @param message the message to be logged
@@ -363,7 +363,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logMsg
 
   /**
-    * Logs a string at the given [[Level]].
+    * Logs a string at the given `Level`.
     *
     * @param level   the logging level
     * @param message the message to be logged
@@ -372,7 +372,7 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logCseq
 
   /**
-    * Logs an object at the given [[Level]].
+    * Logs an object at the given `Level`.
     *
     * @param level   the logging level
     * @param message the message to be logged
@@ -381,40 +381,40 @@ class Logger private(val delegate: ExtendedLogger) {
   macro LoggerMacro.logObject
 
   /**
-    * Logs a [[Message]] at the given [[Level]] including the stack trace of the given [[Throwable]].
+    * 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]]
+    * @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]].
+    * 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]]
+    * @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]].
+    * 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]]
+    * @param cause   a `Throwable`
     */
   def apply(level: Level, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logObjectThrowable
 
 
   /**
-    * Checks whether this Logger is enabled for the the given [[Level]].
+    * Checks whether this Logger is enabled for the the given `Level`.
     *
-    * Note that passing in [[Level.OFF]] always returns `true`.
+    * Note that passing in `Level.OFF` always returns `true`.
     *
     * @param level the level to check
     * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
@@ -422,7 +422,7 @@ class Logger private(val delegate: ExtendedLogger) {
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
 
   /**
-    * Checks whether this Logger is enabled for the the given [[Level]] and [[Marker]].
+    * Checks whether this Logger is enabled for the the given `Level` and `Marker`.
     *
     * @param level  the level to check
     * @param marker The marker to check
@@ -437,7 +437,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * 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]]
+    * @return The built `EntryMessage`
     */
   def traceEntry(): EntryMessage = delegate.traceEntry()
 
@@ -452,13 +452,13 @@ class Logger private(val delegate: ExtendedLogger) {
     * }}}
     *
     * @param params the parameters to the method.
-    * @return The built [[EntryMessage]]
+    * @return The built `EntryMessage`
     */
   def traceEntry(params: Any*): EntryMessage =
   macro LoggerMacro.traceEntryParams
 
   /**
-    * Logs entry to a method using a [[Message]] to describe the parameters.
+    * Logs entry to a method using a `Message` to describe the parameters.
     *
     * {{{
     * def doSomething(foo: Request): Unit = {
@@ -468,7 +468,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * }}}
     *
     * @param message the message
-    * @return The built [[EntryMessage]]
+    * @return The built `EntryMessage`
     */
   def traceEntry(message: Message): EntryMessage =
   macro LoggerMacro.traceEntryMessage
@@ -489,7 +489,7 @@ class Logger private(val delegate: ExtendedLogger) {
   /**
     * Logs exiting from a method with no result.
     *
-    * @param entryMessage the [[EntryMessage]] returned from one of the `traceEntry` methods
+    * @param entryMessage the `EntryMessage` returned from one of the `traceEntry` methods
     */
   def traceExit(entryMessage: EntryMessage): Unit = delegate.traceExit(entryMessage)
 
@@ -504,7 +504,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * }
     * }}}
     *
-    * @param entryMessage the [[EntryMessage]] returned from one of the `traceEntry` methods
+    * @param entryMessage the `EntryMessage` returned from one of the `traceEntry` methods
     * @param result       The result being returned from the method call
     * @return `result`
     */
@@ -562,7 +562,7 @@ class Logger private(val delegate: ExtendedLogger) {
 
 
   /**
-    * @return the [[Level]] associated with this Logger
+    * @return the `Level` associated with this Logger
     */
   def level: Level = delegate.getLevel
 


[50/50] logging-log4j2 git commit: Update changes.xml

Posted by mi...@apache.org.
Update changes.xml


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/139f57ba
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/139f57ba
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/139f57ba

Branch: refs/heads/master
Commit: 139f57baf14c61ce70e0400f9dc31d4c2cf7cec0
Parents: 3c6fa16
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sat Aug 27 13:49:51 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sat Aug 27 13:49:51 2016 +0200

----------------------------------------------------------------------
 src/changes/changes.xml | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/139f57ba/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 77ece3b..108d75a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,9 @@
   </properties>
   <body>
     <release version="2.7" date="2016-MM-DD" description="GA Release 2.7">
+      <action issue="LOG4J2-1181" dev="mikes" type="add">
+        Scala API.
+      </action>
       <action issue="LOG4J2-1512" dev="mikes" type="add">
         Options to exclude stack trace from JSON, XML and YAML layouts.
       </action>


[34/50] logging-log4j2 git commit: Remove MessageFactory accessor from Scala Logger interface

Posted by mi...@apache.org.
Remove MessageFactory accessor from Scala Logger interface


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/22bf2072
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/22bf2072
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/22bf2072

Branch: refs/heads/master
Commit: 22bf207213cef5f7a4f0be6eee9cf64a7b4762ef
Parents: 65995bb
Author: Mikael St�ldal <mi...@magine.com>
Authored: Fri Jul 1 11:38:02 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Fri Jul 1 11:38:02 2016 +0200

----------------------------------------------------------------------
 .../main/scala/org/apache/logging/log4j/scala/Logger.scala  | 9 ++-------
 .../main/scala/org/apache/logging/log4j/scala/Logger.scala  | 9 ++-------
 .../org/apache/logging/log4j/scalasample/LoggingApp.scala   | 5 +++--
 3 files changed, 7 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/22bf2072/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 85efda4..7e3a83c 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
@@ -575,11 +575,6 @@ class Logger private(val delegate: ExtendedLogger) {
     */
   def name: String = delegate.getName
 
-  /**
-    * @return the message factory used to convert message Objects and Strings/CharSequences into actual log Messages
-    */
-  def messageFactory: MessageFactory2 = delegate.getMessageFactory.asInstanceOf[MessageFactory2]
-
 
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
@@ -606,7 +601,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
+    delegate.logMessage(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
@@ -620,7 +615,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
+    delegate.logMessage(FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause)
   }
 
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/22bf2072/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 85efda4..7e3a83c 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
@@ -575,11 +575,6 @@ class Logger private(val delegate: ExtendedLogger) {
     */
   def name: String = delegate.getName
 
-  /**
-    * @return the message factory used to convert message Objects and Strings/CharSequences into actual log Messages
-    */
-  def messageFactory: MessageFactory2 = delegate.getMessageFactory.asInstanceOf[MessageFactory2]
-
 
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
@@ -606,7 +601,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
+    delegate.logMessage(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
@@ -620,7 +615,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
+    delegate.logMessage(FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause)
   }
 
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/22bf2072/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
index d47fb04..f00b9ee 100644
--- a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
+++ b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
@@ -1,5 +1,6 @@
 package org.apache.logging.log4j.scalasample
 
+import org.apache.logging.log4j.message.MessageFactory2
 import org.apache.logging.log4j.scala.Logging
 
 object LoggingApp extends App with Logging {
@@ -10,12 +11,12 @@ object LoggingApp extends App with Logging {
 
   logger.traceEntry()
   logger.traceEntry(s1, s2)
-  val entryMessage = logger.traceEntry(logger.messageFactory.newMessage("foobar": CharSequence))
+  val entryMessage = logger.traceEntry(logger.delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage("foobar": CharSequence))
 
   logger.traceExit()
   logger.traceExit(s2)
   logger.traceExit(entryMessage)
   logger.traceExit(entryMessage, s2)
-  logger.traceExit(logger.messageFactory.newMessage("bonsai": CharSequence), s2)
+  logger.traceExit(logger.delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage("bonsai": CharSequence), s2)
 
 }
\ No newline at end of file


[07/50] logging-log4j2 git commit: Use more macros

Posted by mi...@apache.org.
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/master
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])
+  }
+
 }


[17/50] logging-log4j2 git commit: Add link to ScalaDoc

Posted by mi...@apache.org.
Add link to ScalaDoc


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/c00ecb2f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c00ecb2f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c00ecb2f

Branch: refs/heads/master
Commit: c00ecb2f6144558f492f1f3b7dc0c3e6a5d0325f
Parents: 01db8f5
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Mon Jun 27 13:15:27 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Mon Jun 27 13:15:27 2016 +0200

----------------------------------------------------------------------
 src/site/xdoc/manual/scala-api.xml | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c00ecb2f/src/site/xdoc/manual/scala-api.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/scala-api.xml b/src/site/xdoc/manual/scala-api.xml
index ec6c955..660289e 100644
--- a/src/site/xdoc/manual/scala-api.xml
+++ b/src/site/xdoc/manual/scala-api.xml
@@ -67,6 +67,10 @@ class MyClass extends BaseClass with Logging {
                     logger name, in a fashion very similar to the hierarchy used for Java/Scala package names.
                     The Logging trait will automatically name the Logger accordingly to the class it is being used in.
                 </p>
+
+                <h4>ScalaDoc</h4>
+                <p><a href="../log4j-api-scala_2.11/scaladocs/index.html#org.apache.logging.log4j.scala.package">ScalaDoc</a>.</p>
+
             </subsection>
         </section>
     </body>


[05/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/88044f34
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/88044f34
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/88044f34

Branch: refs/heads/master
Commit: 88044f34c47680697e1a960e581fde5b052eb1a6
Parents: b61f043 aed2298
Author: Mikael St�ldal <mi...@magine.com>
Authored: Sun Jun 19 21:01:30 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Sun Jun 19 21:01:30 2016 +0200

----------------------------------------------------------------------
 .../logging/log4j/message/ObjectMessage.java    |  14 +++
 .../log4j/message/ParameterizedMessage.java     |  15 ++-
 .../log4j/message/ReusableObjectMessage.java    |  14 +++
 .../org/apache/logging/log4j/util/Unbox.java    |   4 +-
 .../core/appender/MemoryMappedFileManager.java  |   2 +
 .../core/appender/OutputStreamManager.java      |   2 +-
 .../rolling/OnStartupTriggeringPolicy.java      |   4 -
 .../rolling/action/FileRenameAction.java        |   4 -
 .../log4j/core/config/Configuration.java        |   6 +-
 .../log4j/core/config/ConfigurationFactory.java |  19 ++--
 .../logging/log4j/core/config/Configurator.java |   3 +-
 .../builder/api/ConfigurationBuilder.java       |   1 -
 .../config/builder/impl/BuiltConfiguration.java |   1 +
 .../config/composite/DefaultMergeStrategy.java  |   3 +-
 .../log4j/core/filter/CompositeFilter.java      |   7 +-
 .../log4j/core/jackson/LogEventJsonMixIn.java   |   2 -
 .../core/layout/AbstractJacksonLayout.java      |   1 -
 .../log4j/core/layout/AbstractStringLayout.java |  12 +++
 .../log4j/core/layout/CsvParameterLayout.java   |   1 -
 .../logging/log4j/core/layout/GelfLayout.java   |  37 ++++---
 .../log4j/core/pattern/NameAbbreviator.java     | 102 +++++++++----------
 .../core/GcFreeMixedSyncAyncLoggingTest.java    |   1 -
 .../core/GcFreeSynchronousLoggingTest.java      |   1 -
 .../AsyncAppenderQueueFullPolicyTest.java       |   6 +-
 .../ConsoleAppenderAnsiStyleLayoutMain.java     |  40 ++++++--
 .../ConsoleAppenderJAnsiMessageMain.java        |  75 ++++++++++++++
 .../log4j/core/appender/FileAppenderTest.java   |  37 ++++---
 .../rolling/OnStartupTriggeringPolicyTest.java  |  16 +--
 .../RandomRollingAppenderOnStartupTest.java     |   6 +-
 .../rolling/RollingAppenderOnStartupTest.java   |  13 +--
 .../rolling/RollingAppenderSizeTest.java        |   4 +-
 .../core/config/CompositeConfigurationTest.java |   6 --
 .../core/filter/AbstractFilterableTest.java     |  12 ++-
 .../log4j/core/impl/MutableLogEventTest.java    |   1 -
 .../core/impl/ReusableLogEventFactoryTest.java  |   2 +
 .../core/layout/AbstractStringLayoutTest.java   |  72 +++++++++++++
 .../layout/CsvParameterLayoutAllAsyncTest.java  |   1 -
 .../log4j/test/appender/BlockingAppender.java   |   3 -
 ...ractStringLayoutStringEncodingBenchmark.java |   4 +-
 .../AsyncAppenderLog4j2LocationBenchmark.java   |   2 -
 .../perf/jmh/AsyncAppenderLogbackBenchmark.java |   1 -
 .../AsyncAppenderLogbackLocationBenchmark.java  |   2 -
 .../perf/jmh/AsyncLoggersLocationBenchmark.java |   2 -
 .../jmh/MemoryHandlerJULLocationBenchmark.java  |   2 -
 .../perf/jmh/ThreadsafeDateFormatBenchmark.java |   6 +-
 pom.xml                                         |   4 +-
 src/changes/changes.xml                         |  18 +++-
 src/site/xdoc/manual/configuration.xml.vm       |  11 +-
 src/site/xdoc/manual/messages.xml               |  24 ++++-
 49 files changed, 425 insertions(+), 201 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/88044f34/pom.xml
----------------------------------------------------------------------


[04/50] logging-log4j2 git commit: Add TODOs

Posted by mi...@apache.org.
Add TODOs


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b61f043d
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b61f043d
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b61f043d

Branch: refs/heads/master
Commit: b61f043d3ba7df7cdd6a1c3d2205bf2c7a520d7b
Parents: 9f3a7d6
Author: Mikael St�ldal <mi...@magine.com>
Authored: Sat Jun 18 23:34:22 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Sat Jun 18 23:34:22 2016 +0200

----------------------------------------------------------------------
 .../src/main/scala/org/apache/logging/log4j/scala/Logger.scala   | 4 ++--
 .../src/main/scala/org/apache/logging/log4j/scala/Logger.scala   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b61f043d/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 ba15f8f..783073f 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
@@ -290,7 +290,7 @@ class Logger(val delegate: ExtendedLogger) {
 
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
-
+  // TODO fix FQCN for flow logging
   def traceEntry(): EntryMessage = delegate.traceEntry()
 
   def traceEntry(params: Any*): EntryMessage =
@@ -357,7 +357,7 @@ class Logger(val delegate: ExtendedLogger) {
   }
 
   private[scala] def traceEntryWithParams(params: Any*): EntryMessage = {
-    delegate.traceEntry(null, params)
+    delegate.traceEntry(null, params) // TODO should not do ifEnabled check
   }
 
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b61f043d/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 ba15f8f..783073f 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
@@ -290,7 +290,7 @@ class Logger(val delegate: ExtendedLogger) {
 
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
-
+  // TODO fix FQCN for flow logging
   def traceEntry(): EntryMessage = delegate.traceEntry()
 
   def traceEntry(params: Any*): EntryMessage =
@@ -357,7 +357,7 @@ class Logger(val delegate: ExtendedLogger) {
   }
 
   private[scala] def traceEntryWithParams(params: Any*): EntryMessage = {
-    delegate.traceEntry(null, params)
+    delegate.traceEntry(null, params) // TODO should not do ifEnabled check
   }
 
 }


[47/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/ca59f13c
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/ca59f13c
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/ca59f13c

Branch: refs/heads/master
Commit: ca59f13c6b30ed68b195209f9c73ad7f03093001
Parents: 403bb13 350887e
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sat Aug 27 11:40:08 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sat Aug 27 11:40:08 2016 +0200

----------------------------------------------------------------------
 RELEASE-NOTES.txt                               |   66 +-
 log4j-1.2-api/pom.xml                           |    7 +-
 .../config/Log4j1ConfigurationFactory.java      |  283 +-
 .../log4j/config/Log4j1ConfigurationParser.java |  327 +
 .../apache/log4j/layout/Log4j1XmlLayout.java    |  161 +
 .../pattern/Log4j1MdcPatternConverter.java      |   91 +
 .../pattern/Log4j1NdcPatternConverter.java      |   63 +
 .../apache/log4j/BasicConfigurationFactory.java |   13 +-
 .../config/Log4j1ConfigurationFactoryTest.java  |   64 +-
 .../log4j/layout/Log4j1XmlLayoutTest.java       |   84 +
 .../pattern/Log4j1MdcPatternConverterTest.java  |   79 +
 .../pattern/Log4j1NdcPatternConverterTest.java  |   74 +
 ...g4j-console-EnhancedPatternLayout.properties |    3 +-
 .../log4j-console-HtmlLayout.properties         |    3 +-
 .../log4j-console-PatternLayout.properties      |    1 -
 .../log4j-console-SimpleLayout.properties       |    1 -
 .../log4j-console-TTCCLayout.properties         |    3 +-
 .../log4j-console-XmlLayout.properties          |    5 +-
 .../log4j-file-SimpleLayout.properties          |   17 +
 log4j-api/pom.xml                               |    2 +-
 .../logging/log4j/CloseableThreadContext.java   |    2 +-
 .../java/org/apache/logging/log4j/Logger.java   |   20 +
 .../org/apache/logging/log4j/ThreadContext.java |   66 +-
 .../logging/log4j/message/ObjectMessage.java    |   10 +
 .../log4j/message/ReusableObjectMessage.java    |   10 +
 .../log4j/spi/DefaultThreadContextMap.java      |   18 +-
 .../logging/log4j/spi/ThreadContextMap.java     |   63 +-
 .../logging/log4j/spi/ThreadContextMap2.java    |   40 +
 .../logging/log4j/spi/ThreadContextStack.java   |    1 +
 .../apache/logging/log4j/util/Constants.java    |    1 +
 .../apache/logging/log4j/util/LoaderUtil.java   |   28 +-
 .../org/apache/logging/log4j/util/Unbox.java    |    1 +
 .../log4j/CloseableThreadContextTest.java       |   11 +-
 .../org/apache/logging/log4j/LoggerTest.java    |    2 +-
 .../logging/log4j/ThreadContextHolder.java      |   79 +
 .../apache/logging/log4j/ThreadContextTest.java |   21 +
 .../apache/logging/log4j/TraceLoggingTest.java  |    1 -
 .../logging/log4j/junit/BundleTestInfo.java     |  137 +-
 .../apache/logging/log4j/junit/OsgiRule.java    |  141 +-
 .../log4j/junit/ThreadContextMapRule.java       |   37 +
 .../logging/log4j/junit/ThreadContextRule.java  |   78 +
 .../log4j/junit/ThreadContextStackRule.java     |   37 +
 .../log4j/spi/DefaultThreadContextMapTest.java  |   26 +-
 log4j-bom/pom.xml                               |    2 +-
 log4j-core/.gitignore                           |   11 +-
 log4j-core/pom.xml                              |   14 +-
 .../logging/log4j/core/AbstractLifeCycle.java   |    8 +
 .../apache/logging/log4j/core/LifeCycle.java    |   13 +
 .../logging/log4j/core/LoggerContext.java       |  153 +-
 .../log4j/core/appender/AbstractAppender.java   |   58 +
 .../log4j/core/appender/AbstractManager.java    |   19 +-
 .../appender/AbstractOutputStreamAppender.java  |   21 +
 .../core/appender/ConfigurationFactoryData.java |   50 +
 .../log4j/core/appender/ConsoleAppender.java    |   84 +-
 .../log4j/core/appender/FileAppender.java       |  292 +-
 .../log4j/core/appender/FileManager.java        |   99 +-
 .../core/appender/MemoryMappedFileManager.java  |    6 +-
 .../core/appender/OutputStreamManager.java      |   71 +-
 .../core/appender/RandomAccessFileAppender.java |    2 +-
 .../core/appender/RandomAccessFileManager.java  |   29 +-
 .../core/appender/RollingFileAppender.java      |  597 +-
 .../RollingRandomAccessFileAppender.java        |    2 +-
 .../log4j/core/appender/WriterManager.java      |    2 +-
 .../appender/db/AbstractDatabaseManager.java    |    6 +-
 .../appender/db/jdbc/JdbcDatabaseManager.java   |    4 +-
 .../appender/db/jpa/JpaDatabaseManager.java     |    2 +-
 .../log4j/core/appender/mom/JmsManager.java     |    2 +-
 .../core/appender/mom/jeromq/JeroMqManager.java |    2 +-
 .../core/appender/mom/kafka/KafkaAppender.java  |    7 +-
 .../core/appender/mom/kafka/KafkaManager.java   |  185 +-
 .../appender/rolling/CronTriggeringPolicy.java  |   37 +-
 .../rolling/DefaultRolloverStrategy.java        |   19 +-
 .../log4j/core/appender/rolling/FileSize.java   |    1 +
 .../rolling/OnStartupTriggeringPolicy.java      |    3 +
 .../core/appender/rolling/PatternProcessor.java |   12 +-
 .../appender/rolling/RollingFileManager.java    |   82 +-
 .../rolling/RollingRandomAccessFileManager.java |   36 +-
 .../core/appender/rolling/TriggeringPolicy.java |    2 +-
 .../rolling/action/CommonsCompressAction.java   |    9 +-
 .../rolling/action/FileRenameAction.java        |   69 +-
 .../core/async/AsyncLoggerConfigDisruptor.java  |    3 +-
 .../log4j/core/async/AsyncLoggerDisruptor.java  |    3 +-
 .../log4j/core/async/DaemonThreadFactory.java   |   53 -
 .../log4j/core/async/RingBufferLogEvent.java    |    6 +-
 .../core/config/AbstractConfiguration.java      |   42 +-
 .../log4j/core/config/AppenderControl.java      |    3 +-
 .../log4j/core/config/AppendersPlugin.java      |    4 +-
 .../log4j/core/config/Configuration.java        |    8 +
 .../log4j/core/config/ConfigurationFactory.java |   86 +-
 .../core/config/ConfigurationScheduler.java     |   45 +-
 .../core/config/ConfiguratonFileWatcher.java    |   10 +-
 .../logging/log4j/core/config/Configurator.java |   36 +-
 .../log4j/core/config/CronScheduledFuture.java  |   43 +-
 .../log4j/core/config/DefaultConfiguration.java |    2 +-
 .../logging/log4j/core/config/LoggerConfig.java |   36 +-
 .../log4j/core/config/NullConfiguration.java    |    2 +-
 .../builder/api/ConfigurationBuilder.java       |   20 +-
 .../config/builder/impl/BuiltConfiguration.java |    5 +-
 .../impl/DefaultConfigurationBuilder.java       |   53 +-
 .../DefaultCustomLevelComponentBuilder.java     |    2 +-
 .../composite/CompositeConfiguration.java       |    4 +-
 .../config/composite/DefaultMergeStrategy.java  |    7 +-
 .../core/config/json/JsonConfiguration.java     |   14 +-
 .../config/json/JsonConfigurationFactory.java   |    5 +-
 .../config/plugins/PluginBuilderFactory.java    |    1 +
 .../config/plugins/PluginConfiguration.java     |    1 +
 .../core/config/plugins/PluginFactory.java      |    2 +-
 .../log4j/core/config/plugins/PluginNode.java   |    1 +
 .../core/config/plugins/util/PluginBuilder.java |    6 +-
 .../config/plugins/util/PluginRegistry.java     |    1 -
 .../core/config/plugins/util/ResolverUtil.java  |   13 +-
 .../plugins/visitors/PluginValueVisitor.java    |    5 +-
 .../properties/PropertiesConfiguration.java     |    8 +-
 .../PropertiesConfigurationBuilder.java         |   18 +-
 .../PropertiesConfigurationFactory.java         |   13 +-
 .../log4j/core/config/xml/XmlConfiguration.java |   47 +-
 .../config/xml/XmlConfigurationFactory.java     |    6 +-
 .../core/config/yaml/YamlConfiguration.java     |    7 +-
 .../config/yaml/YamlConfigurationFactory.java   |    5 +-
 .../log4j/core/filter/AbstractFilter.java       |    3 +-
 .../log4j/core/filter/AbstractFilterable.java   |   27 +
 .../core/filter/DynamicThresholdFilter.java     |   85 +-
 .../log4j/core/filter/ThresholdFilter.java      |   16 +-
 .../log4j/core/impl/DefaultLogEventFactory.java |    7 +-
 .../log4j/core/impl/ExtendedClassInfo.java      |   23 +-
 .../core/impl/ExtendedStackTraceElement.java    |   46 +-
 .../log4j/core/impl/Log4jContextFactory.java    |    6 +-
 .../log4j/core/impl/ThrowableFormatOptions.java |  541 +-
 .../logging/log4j/core/impl/ThrowableProxy.java | 1390 +++--
 .../log4j/core/jackson/Initializers.java        |   10 +-
 .../log4j/core/jackson/Log4jJsonModule.java     |    9 +-
 .../core/jackson/Log4jJsonObjectMapper.java     |    6 +-
 .../log4j/core/jackson/Log4jXmlModule.java      |    6 +-
 .../core/jackson/Log4jXmlObjectMapper.java      |    9 +-
 .../log4j/core/jackson/Log4jYamlModule.java     |    9 +-
 .../core/jackson/Log4jYamlObjectMapper.java     |    6 +-
 .../ThrowableProxyWithoutStacktraceMixIn.java   |   77 +
 .../log4j/core/jmx/LoggerContextAdmin.java      |    4 +-
 .../apache/logging/log4j/core/jmx/Server.java   |   19 +-
 .../log4j/core/layout/AbstractStringLayout.java |   57 +-
 .../logging/log4j/core/layout/HtmlLayout.java   |   14 +
 .../log4j/core/layout/JacksonFactory.java       |   22 +-
 .../logging/log4j/core/layout/JsonLayout.java   |   14 +-
 .../log4j/core/layout/PatternLayout.java        |   33 +-
 .../logging/log4j/core/layout/XmlLayout.java    |   15 +-
 .../logging/log4j/core/layout/YamlLayout.java   |   13 +-
 .../logging/log4j/core/net/JndiManager.java     |    2 +-
 .../logging/log4j/core/net/SmtpManager.java     |    4 +-
 .../core/net/server/AbstractSocketServer.java   |    7 +-
 .../log4j/core/net/server/JmsServer.java        |   10 +-
 .../server/JsonInputStreamLogEventBridge.java   |    2 +-
 .../core/pattern/DatePatternConverter.java      |    2 +-
 .../ExtendedThrowablePatternConverter.java      |    3 +-
 .../log4j/core/pattern/HighlightConverter.java  |   38 +-
 .../log4j/core/pattern/HtmlTextRenderer.java    |   38 +
 .../log4j/core/pattern/JAnsiTextRenderer.java   |  332 +
 .../core/pattern/MessagePatternConverter.java   |   83 +-
 .../log4j/core/pattern/NameAbbreviator.java     |    2 +
 .../log4j/core/pattern/PlainTextRenderer.java   |   40 +
 .../pattern/RootThrowablePatternConverter.java  |    2 +-
 .../log4j/core/pattern/StyleConverter.java      |   24 +-
 .../log4j/core/pattern/TextRenderer.java        |   46 +
 .../log4j/core/script/ScriptManager.java        |    1 -
 .../core/selector/BasicContextSelector.java     |  131 +-
 .../core/selector/CoreContextSelectors.java     |   25 +
 .../logging/log4j/core/util/ArrayUtils.java     |  124 +
 .../apache/logging/log4j/core/util/Assert.java  |   38 -
 .../logging/log4j/core/util/Constants.java      |   11 -
 .../util/DefaultShutdownCallbackRegistry.java   |    7 +
 .../apache/logging/log4j/core/util/Loader.java  |    6 +-
 .../logging/log4j/core/util/Log4jThread.java    |  138 +-
 .../log4j/core/util/Log4jThreadFactory.java     |   99 +
 .../logging/log4j/core/util/TypeUtil.java       |   21 +
 .../core/util/datetime/FastDateParser.java      |   54 +-
 .../core/util/datetime/FixedDateFormat.java     |   77 +-
 .../log4j/FormatterLoggerManualExample.java     |    7 +-
 .../apache/logging/log4j/LogRolloverTest.java   |   18 +-
 .../logging/log4j/MarkerMixInXmlTest.java       |    2 +-
 .../log4j/core/BasicConfigurationFactory.java   |    6 +-
 .../logging/log4j/core/StrictXmlConfigTest.java |    1 -
 .../ConsoleAppenderAnsiMessagesMain.java        |  110 +-
 .../ConsoleAppenderAnsiStyleJira180Main.java    |  119 +-
 .../ConsoleAppenderAnsiStyleJira272Main.java    |  121 +-
 .../ConsoleAppenderAnsiStyleJira319Main.java    |  123 +-
 .../ConsoleAppenderAnsiStyleLayoutMain.java     |  149 +-
 .../ConsoleAppenderAnsiStyleNameLayoutMain.java |   11 +-
 ...nsoleAppenderDefaultSuppressedThrowable.java |  131 +-
 ...nsoleAppenderHighlightLayoutDefaultMain.java |   11 +-
 ...nsoleAppenderHighlightLayoutLogbackMain.java |   11 +-
 .../ConsoleAppenderHighlightLayoutMain.java     |   11 +-
 .../ConsoleAppenderJAnsiMessageMain.java        |  154 +-
 .../ConsoleAppenderJAnsiXExceptionMain.java     |   76 +
 .../ConsoleAppenderNoAnsiStyleLayoutMain.java   |  145 +-
 .../core/appender/ConsoleAppenderTest.java      |    8 +-
 .../log4j/core/appender/FileAppenderTest.java   |  306 +-
 .../log4j/core/appender/Jira739Test.java        |  103 +-
 .../appender/JsonCompleteFileAppenderTest.java  |   37 +-
 .../core/appender/OutputStreamAppenderTest.java |  214 +-
 .../core/appender/ProgressConsoleTest.java      |    7 +-
 .../appender/RandomAccessFileManagerTest.java   |   18 +-
 .../appender/XmlCompleteFileAppenderTest.java   |   68 +-
 .../ContextStackJsonAttributeConverterTest.java |   19 +-
 .../appender/mom/jeromq/JeroMqAppenderTest.java |   10 +-
 .../core/appender/rolling/FileSizeTest.java     |    4 +-
 .../rolling/OnStartupTriggeringPolicyTest.java  |   49 +-
 .../RandomRollingAppenderOnStartupTest.java     |    2 +-
 .../RollingAppenderCronOnceADayTest.java        |  125 +
 .../rolling/RollingAppenderCronTest.java        |   12 +-
 .../RollingAppenderCustomDeleteActionTest.java  |    2 +-
 ...lingAppenderDeleteAccumulatedCount1Test.java |    2 +-
 ...lingAppenderDeleteAccumulatedCount2Test.java |    2 +-
 ...ollingAppenderDeleteAccumulatedSizeTest.java |    2 +-
 .../RollingAppenderDeleteMaxDepthTest.java      |    2 +-
 .../RollingAppenderDeleteNestedTest.java        |    2 +-
 .../RollingAppenderDeleteScriptFri13thTest.java |    2 +-
 .../RollingAppenderDeleteScriptTest.java        |    2 +-
 ...ollingAppenderNoUnconditionalDeleteTest.java |    2 +-
 .../rolling/RollingAppenderOnStartupTest.java   |    2 +-
 .../rolling/RollingAppenderSizeTest.java        |   51 +-
 .../rolling/RollingAppenderTimeAndSizeTest.java |    4 +-
 .../rolling/RollingAppenderTimeTest.java        |    2 +-
 .../rolling/RollingFileAppenderAccessTest.java  |   56 +-
 ...RandomAccessFileManagerHeaderFooterTest.java |    3 +-
 .../RollingRandomAccessFileManagerTest.java     |   24 +-
 .../core/async/RingBufferLogEventTest.java      |   18 +-
 .../core/config/CompositeConfigurationTest.java |   51 +-
 .../log4j/core/config/ConfigurationTest.java    |    6 +
 .../log4j/core/config/ConfiguratorTest.java     |    5 +-
 .../core/config/CustomConfigurationTest.java    |   13 +-
 .../log4j/core/config/TestConfigurator.java     |   24 +-
 .../core/config/TestConfiguratorError.java      |   13 +-
 .../builder/ConfigurationAssemblerTest.java     |   36 +-
 .../builder/CustomConfigurationFactory.java     |   18 +-
 .../plugins/util/PluginManagerPackagesTest.java |   12 +-
 .../util/ResolverUtilCustomProtocolTest.java    |  208 +
 .../config/plugins/util/ResolverUtilTest.java   |  126 +-
 .../AbstractPluginWithGenericBuilder.java       |   59 +
 .../PluginWithGenericSubclassFoo1Builder.java   |   55 +
 .../plugins/validation/ValidatingPlugin.java    |    2 +-
 .../ValidatingPluginWithGenericBuilder.java     |   75 +
 .../ValidatingPluginWithTypedBuilder.java       |   70 +
 .../validators/RequiredValidatorTest.java       |    1 +
 .../ValidatingPluginWithGenericBuilderTest.java |   66 +
 ...luginWithGenericSubclassFoo1BuilderTest.java |   68 +
 .../ValidatingPluginWithTypedBuilderTest.java   |   71 +
 .../core/config/xml/XmlLoggerPropsTest.java     |    8 +-
 .../core/filter/DynamicThresholdFilterTest.java |   47 +-
 .../core/impl/ThrowableFormatOptionsTest.java   |  208 +-
 .../log4j/core/jackson/LevelMixInJsonTest.java  |    2 +-
 .../jackson/StackTraceElementMixInTest.java     |    2 +-
 .../core/layout/CsvLogEventLayoutTest.java      |    8 +-
 .../core/layout/CsvParameterLayoutTest.java     |   73 +-
 .../log4j/core/layout/GelfLayoutTest.java       |   12 +-
 .../log4j/core/layout/HtmlLayoutTest.java       |    7 +-
 .../log4j/core/layout/JsonLayoutTest.java       |   59 +-
 .../log4j/core/layout/Log4j2_1482_CoreTest.java |   20 +
 .../log4j/core/layout/Log4j2_1482_Test.java     |   89 +
 .../log4j/core/layout/LogEventFixtures.java     |    6 +-
 .../layout/PatternLayoutLookupDateTest.java     |   28 +
 .../layout/PatternLayoutNoLookupDateTest.java   |   26 +
 .../log4j/core/layout/PatternLayoutTest.java    |   18 +-
 .../log4j/core/layout/Rfc5424LayoutTest.java    |   21 +-
 .../log4j/core/layout/SerializedLayoutTest.java |    7 +-
 .../log4j/core/layout/SyslogLayoutTest.java     |    9 +-
 .../log4j/core/layout/XmlLayoutTest.java        |   66 +-
 .../log4j/core/layout/YamlLayoutTest.java       |   55 +-
 .../lookup/MainInputArgumentsLookupTest.java    |   11 +-
 .../net/server/AbstractSocketServerTest.java    |    4 +-
 .../osgi/equinox/EquinoxLoadCoreBundleTest.java |    6 +-
 .../osgi/felix/FelixLoadCoreBundleTest.java     |    4 +
 .../core/pattern/DatePatternConverterTest.java  |   22 +
 .../core/pattern/HighlightConverterTest.java    |   78 +
 .../core/pattern/MdcPatternConverterTest.java   |   29 +-
 .../core/pattern/MessageJansiConverterTest.java |   62 +
 .../pattern/MessagePatternConverterTest.java    |  197 +-
 .../pattern/MessageStyledConverterTest.java     |   62 +
 .../core/pattern/NdcPatternConverterTest.java   |   77 +
 .../core/pattern/RegexReplacementTest.java      |   17 +-
 .../core/util/datetime/FixedDateFormatTest.java |   35 +-
 .../junit/AbstractExternalFileCleaner.java      |  232 +-
 .../apache/logging/log4j/junit/CleanFiles.java  |   38 +-
 .../logging/log4j/junit/CleanFolders.java       |   45 +-
 .../logging/log4j/junit/LoggerContextRule.java  |   33 +-
 .../junit/URLStreamHandlerFactoryRule.java      |   96 +
 .../log4j/test/appender/InMemoryAppender.java   |    7 +-
 log4j-core/src/test/resources/gcFreeLogging.xml |   11 +-
 .../resources/gcFreeMixedSyncAsyncLogging.xml   |   10 +-
 .../log4j-comp-logger-attr-override.json        |   38 +
 .../test/resources/log4j-comp-logger-root.xml   |   44 +
 .../test/resources/log4j-comp-root-loggers.xml  |   46 +
 .../src/test/resources/log4j-list-nolookups.xml |   29 +
 .../src/test/resources/log4j-loggerprops.xml    |    4 +-
 .../src/test/resources/log4j-message-ansi.xml   |   34 +
 .../src/test/resources/log4j-message-styled.xml |   34 +
 .../test/resources/log4j-rolling-7z-lazy.xml    |   59 +
 .../test/resources/log4j-rolling-bzip2-lazy.xml |   60 +
 .../resources/log4j-rolling-cron-once-a-day.xml |   47 +
 .../src/test/resources/log4j-rolling-cron.xml   |    2 +-
 .../src/test/resources/log4j-rolling-cron2.xml  |    2 +-
 .../resources/log4j-rolling-deflate-lazy.xml    |   60 +
 .../test/resources/log4j-rolling-gz-lazy.xml    |   59 +
 .../resources/log4j-rolling-pack200-lazy.xml    |   60 +
 .../test/resources/log4j-rolling-xz-lazy.xml    |   60 +
 .../test/resources/log4j-rolling-zip-lazy.xml   |   60 +
 log4j-core/src/test/resources/log4j-style.xml   |    4 +-
 log4j-core/src/test/resources/log4j2-1482.xml   |   27 +
 .../test/resources/log4j2-console-msg-ansi.xml  |   31 +
 .../log4j2-console-xex-ansi-custom.xml          |   31 +
 .../resources/log4j2-console-xex-ansi-kirk.xml  |   31 +
 .../test/resources/log4j2-console-xex-ansi.xml  |   31 +
 .../test/resources/log4j2-properties.properties |    1 +
 log4j-distribution/pom.xml                      |    2 +-
 log4j-flume-ng/pom.xml                          |    3 +-
 .../flume/appender/AbstractFlumeManager.java    |    2 +-
 .../log4j/flume/appender/FlumeAppender.java     |   41 +-
 .../flume/appender/FlumePersistentManager.java  | 1730 +++---
 .../log4j/flume/appender/FlumeAppenderTest.java |   49 +-
 log4j-iostreams/pom.xml                         |    2 +-
 log4j-jcl/pom.xml                               |    2 +-
 log4j-jmx-gui/pom.xml                           |    3 +-
 log4j-jul/pom.xml                               |    3 +-
 log4j-liquibase/pom.xml                         |    2 +-
 log4j-nosql/pom.xml                             |    8 +-
 .../appender/NoSqlDatabaseManagerTest.java      |    5 +
 log4j-perf/pom.xml                              |    2 +-
 log4j-samples/configuration/pom.xml             |    2 +-
 .../configuration/CustomConfiguration.java      |   13 +-
 .../CustomConfigurationFactory.java             |   12 +-
 log4j-samples/flume-common/pom.xml              |    2 +-
 log4j-samples/flume-embedded/pom.xml            |    2 +-
 log4j-samples/flume-remote/pom.xml              |    2 +-
 log4j-samples/loggerProperties/pom.xml          |    2 +-
 log4j-samples/pom.xml                           |    2 +-
 log4j-slf4j-impl/pom.xml                        |    7 +-
 .../org/apache/logging/slf4j/Log4j1222Test.java |    1 -
 .../logging/slf4j/Log4j2_1482_Slf4jTest.java    |   41 +
 .../src/test/resources/log4j2-1482.xml          |   27 +
 log4j-taglib/pom.xml                            |    2 +-
 log4j-to-slf4j/pom.xml                          |    2 +-
 .../org/apache/logging/slf4j/MDCContextMap.java |   12 +-
 log4j-web/pom.xml                               |    3 +-
 .../org/apache/logging/log4j/web/WebLookup.java |    8 -
 pom.xml                                         |   24 +-
 src/changes/announcement.vm                     |   17 +-
 src/changes/changes.xml                         | 5709 +++++++++---------
 src/site/apt/download.apt.vm                    |   15 +
 src/site/resources/images/logo.png              |  Bin 41622 -> 40736 bytes
 src/site/resources/logo/logo-java-2-2.6.2.png   |  Bin 0 -> 40736 bytes
 src/site/resources/logo/logo-java-2-2.6.2.xcf   |  Bin 0 -> 66719 bytes
 src/site/site.xml                               |    7 +
 src/site/xdoc/articles.xml                      |   46 +-
 src/site/xdoc/manual/appenders.xml              |   39 +-
 src/site/xdoc/manual/configuration.xml.vm       |    6 +-
 src/site/xdoc/manual/customconfig.xml           |   10 +-
 src/site/xdoc/manual/extending.xml              |   22 +-
 src/site/xdoc/manual/garbagefree.xml            |   10 +-
 src/site/xdoc/manual/layouts.xml.vm             |  120 +-
 src/site/xdoc/manual/lookups.xml                |   18 +-
 358 files changed, 14689 insertions(+), 8042 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ca59f13c/log4j-bom/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ca59f13c/log4j-samples/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ca59f13c/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ca59f13c/src/site/site.xml
----------------------------------------------------------------------


[32/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/193f4e31
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/193f4e31
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/193f4e31

Branch: refs/heads/master
Commit: 193f4e3143f9b8eb31d1c3c05fa8d1559d9602c2
Parents: 373bf25 5b1c736
Author: Mikael St�ldal <mi...@magine.com>
Authored: Thu Jun 30 18:21:41 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Thu Jun 30 18:21:41 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/logging/log4j/Logger.java   |   9 +-
 .../message/DefaultFlowMessageFactory.java      |  15 +-
 .../logging/log4j/spi/AbstractLogger.java       |   8 +-
 .../apache/logging/log4j/TraceLoggingTest.java  | 317 +++++++++++++++++++
 .../ReusableParameterizedMessageTest.java       |   6 +
 src/changes/changes.xml                         |   3 +
 6 files changed, 350 insertions(+), 8 deletions(-)
----------------------------------------------------------------------



[35/50] logging-log4j2 git commit: Remove level and name accessors from Scala Logger interface

Posted by mi...@apache.org.
Remove level and name accessors from Scala Logger interface


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7dac62e8
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7dac62e8
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7dac62e8

Branch: refs/heads/master
Commit: 7dac62e8edcb7ea94d5344beba56df8e6f4a94b8
Parents: 22bf207
Author: Mikael St�ldal <mi...@magine.com>
Authored: Fri Jul 1 11:40:26 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Fri Jul 1 11:40:26 2016 +0200

----------------------------------------------------------------------
 .../scala/org/apache/logging/log4j/scala/Logger.scala    | 11 -----------
 .../scala/org/apache/logging/log4j/scala/Logger.scala    | 11 -----------
 2 files changed, 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7dac62e8/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 7e3a83c..1c19fcd 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
@@ -565,17 +565,6 @@ class Logger private(val delegate: ExtendedLogger) {
   def catching(level: Level, t: Throwable): Unit = delegate.catching(level, t)
 
 
-  /**
-    * @return the `Level` associated with this Logger
-    */
-  def level: Level = delegate.getLevel
-
-  /**
-    * @return the logger name
-    */
-  def name: String = delegate.getName
-
-
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
     *

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7dac62e8/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 7e3a83c..1c19fcd 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
@@ -565,17 +565,6 @@ class Logger private(val delegate: ExtendedLogger) {
   def catching(level: Level, t: Throwable): Unit = delegate.catching(level, t)
 
 
-  /**
-    * @return the `Level` associated with this Logger
-    */
-  def level: Level = delegate.getLevel
-
-  /**
-    * @return the logger name
-    */
-  def name: String = delegate.getName
-
-
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
     *


[27/50] logging-log4j2 git commit: Fix flow logging more

Posted by mi...@apache.org.
Fix flow logging more


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/86089b38
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/86089b38
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/86089b38

Branch: refs/heads/master
Commit: 86089b387153cb3dc66d8807efbfe5d9e761b01c
Parents: 0ab0156
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Jun 29 21:08:12 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Jun 29 21:11:15 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala      |  8 +-------
 .../org/apache/logging/log4j/scala/LoggerMacro.scala |  6 +++---
 .../org/apache/logging/log4j/scala/LoggerTest.scala  |  8 ++++----
 .../org/apache/logging/log4j/scala/Logger.scala      |  8 +-------
 .../org/apache/logging/log4j/scala/LoggerMacro.scala |  6 +++---
 .../org/apache/logging/log4j/scala/LoggerTest.scala  |  8 ++++----
 .../scala-api/src/main/resources/log4j2.xml          |  4 ++--
 .../logging/log4j/scalasample/LoggingApp.scala       | 15 +++++++++++++--
 8 files changed, 31 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86089b38/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 5fa2cb7..4999bdb 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
@@ -454,7 +454,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param params the parameters to the method.
     * @return The built `EntryMessage`
     */
-  def traceEntry(params: Any*): EntryMessage =
+  def traceEntry(params: AnyRef*): EntryMessage =
   macro LoggerMacro.traceEntryParams
 
   /**
@@ -623,10 +623,4 @@ class Logger private(val delegate: ExtendedLogger) {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
-  // TODO inline this to get FQCN correct
-  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
-  def traceEntryParams(params: Any*): EntryMessage = {
-    delegate.traceEntry(null: String, params) // TODO should not do ifEnabled check
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86089b38/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 513dd90..507242e 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
@@ -343,7 +343,7 @@ private object LoggerMacro {
       c.prefix.splice.delegate.traceEntry()
     )
 
-  def traceEntryParams(c: LoggerContext)(params: c.Expr[Any]*): c.Expr[EntryMessage] = {
+  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")),
@@ -356,8 +356,8 @@ private object LoggerMacro {
     )
 
     val log = Apply(
-      Select(c.prefix.tree, newTermName("traceEntryParams")),
-      (params map (_.tree)).toList
+      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))
   }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86089b38/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 d9237a5..4c14d5d 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
@@ -451,16 +451,16 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
-    logger.traceEntry("foo", 17)
-    verify(f.mockLogger).traceEntry(anyString(), any[Array[AnyRef]])
+    logger.traceEntry("foo", "bar")
+    verify(f.mockLogger).traceEntry(null: String, "foo", "bar")
   }
 
   test("traceEntry disabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
     val logger = Logger(f.mockLogger)
-    logger.traceEntry("foo", 17)
-    verify(f.mockLogger, never).traceEntry(anyString(), any[Array[AnyRef]])
+    logger.traceEntry("foo", "bar")
+    verify(f.mockLogger, never).traceEntry(anyString(), anyString(), anyString())
   }
 
   test("traceEntry enabled with message") {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86089b38/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 5fa2cb7..4999bdb 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
@@ -454,7 +454,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param params the parameters to the method.
     * @return The built `EntryMessage`
     */
-  def traceEntry(params: Any*): EntryMessage =
+  def traceEntry(params: AnyRef*): EntryMessage =
   macro LoggerMacro.traceEntryParams
 
   /**
@@ -623,10 +623,4 @@ class Logger private(val delegate: ExtendedLogger) {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
-  // TODO inline this to get FQCN correct
-  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
-  def traceEntryParams(params: Any*): EntryMessage = {
-    delegate.traceEntry(null: String, params) // TODO should not do ifEnabled check
-  }
-
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86089b38/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 77a0a0c..0f1bac5 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
@@ -343,7 +343,7 @@ private object LoggerMacro {
       c.prefix.splice.delegate.traceEntry()
     )
 
-  def traceEntryParams(c: LoggerContext)(params: c.Expr[Any]*): c.Expr[EntryMessage] = {
+  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")),
@@ -356,8 +356,8 @@ private object LoggerMacro {
     )
 
     val log = Apply(
-      Select(c.prefix.tree, newTermName("traceEntryParams")),
-      (params map (_.tree)).toList
+      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))
   }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86089b38/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 d9237a5..4c14d5d 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
@@ -451,16 +451,16 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
-    logger.traceEntry("foo", 17)
-    verify(f.mockLogger).traceEntry(anyString(), any[Array[AnyRef]])
+    logger.traceEntry("foo", "bar")
+    verify(f.mockLogger).traceEntry(null: String, "foo", "bar")
   }
 
   test("traceEntry disabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
     val logger = Logger(f.mockLogger)
-    logger.traceEntry("foo", 17)
-    verify(f.mockLogger, never).traceEntry(anyString(), any[Array[AnyRef]])
+    logger.traceEntry("foo", "bar")
+    verify(f.mockLogger, never).traceEntry(anyString(), anyString(), anyString())
   }
 
   test("traceEntry enabled with message") {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86089b38/log4j-samples/scala-api/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/src/main/resources/log4j2.xml b/log4j-samples/scala-api/src/main/resources/log4j2.xml
index f5b89b4..ac0664b 100644
--- a/log4j-samples/scala-api/src/main/resources/log4j2.xml
+++ b/log4j-samples/scala-api/src/main/resources/log4j2.xml
@@ -20,12 +20,12 @@
     <Appenders>
         <Console name="Console">
             <PatternLayout>
-                <Pattern>%d %5p [%t] %c{1} %X - %m%n</Pattern>
+                <Pattern>%d %5p %c{1} %X %F:%L - %m%n</Pattern>
             </PatternLayout>
         </Console>
     </Appenders>
     <Loggers>
-        <Root level="INFO">
+        <Root level="TRACE">
             <AppenderRef ref="Console"/>
         </Root>
     </Loggers>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86089b38/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
index b50c83b..82c2acf 100644
--- a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
+++ b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
@@ -4,7 +4,18 @@ import org.apache.logging.log4j.scala.Logging
 
 object LoggingApp extends App with Logging {
 
-  val i = 17
-  logger.info(s"Hello, world: $i")
+  val s1 = "foo"
+  val s2 = "bar"
+  logger.info(s"Hello, world: $s1 $s2")
+
+  logger.traceEntry()
+  logger.traceEntry(s1, s2)
+  val entryMessage = logger.traceEntry(logger.messageFactory.newMessage("foobar": CharSequence))
+
+  logger.traceExit()
+  logger.traceExit(s2)
+  logger.traceExit(entryMessage)
+  logger.traceExit(entryMessage, s2)
+  logger.traceExit(logger.messageFactory.newMessage("foobar": CharSequence), s2)
 
 }
\ No newline at end of file


[15/50] logging-log4j2 git commit: Clean-up Scala API POMs

Posted by mi...@apache.org.
Clean-up Scala API POMs


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/5a1e986d
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/5a1e986d
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/5a1e986d

Branch: refs/heads/master
Commit: 5a1e986d37a1c8c6e3f01d780ea63e1034c84e25
Parents: 8f69d18
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Mon Jun 27 13:00:47 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Mon Jun 27 13:00:47 2016 +0200

----------------------------------------------------------------------
 log4j-api-scala_2.10/pom.xml | 44 ---------------------------------------
 log4j-api-scala_2.11/pom.xml | 44 ---------------------------------------
 2 files changed, 88 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5a1e986d/log4j-api-scala_2.10/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.10/pom.xml b/log4j-api-scala_2.10/pom.xml
index 6d49979..d0d72da 100644
--- a/log4j-api-scala_2.10/pom.xml
+++ b/log4j-api-scala_2.10/pom.xml
@@ -133,50 +133,6 @@
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.plugin.version}</version>
-        <configuration>
-          <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
-          <configLocation>${log4jParentDir}/checkstyle.xml</configLocation>
-          <suppressionsLocation>${log4jParentDir}/checkstyle-suppressions.xml</suppressionsLocation>
-          <enableRulesSummary>false</enableRulesSummary>
-          <propertyExpansion>basedir=${basedir}</propertyExpansion>
-          <propertyExpansion>licensedir=${log4jParentDir}/checkstyle-header.txt</propertyExpansion>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>${findbugs.plugin.version}</version>
-        <configuration>
-          <fork>true</fork>
-          <jvmArgs>-Duser.language=en</jvmArgs>
-          <threshold>Normal</threshold>
-          <effort>Default</effort>
-          <excludeFilterFile>${log4jParentDir}/findbugs-exclude-filter.xml</excludeFilterFile>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jxr-plugin</artifactId>
-        <version>${jxr.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <id>non-aggregate</id>
-            <reports>
-              <report>jxr</report>
-            </reports>
-          </reportSet>
-          <reportSet>
-            <id>aggregate</id>
-            <reports>
-              <report>aggregate</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-pmd-plugin</artifactId>
         <version>${pmd.plugin.version}</version>
         <configuration>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5a1e986d/log4j-api-scala_2.11/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/pom.xml b/log4j-api-scala_2.11/pom.xml
index f6bfff4..4b73bf0 100644
--- a/log4j-api-scala_2.11/pom.xml
+++ b/log4j-api-scala_2.11/pom.xml
@@ -133,50 +133,6 @@
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.plugin.version}</version>
-        <configuration>
-          <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
-          <configLocation>${log4jParentDir}/checkstyle.xml</configLocation>
-          <suppressionsLocation>${log4jParentDir}/checkstyle-suppressions.xml</suppressionsLocation>
-          <enableRulesSummary>false</enableRulesSummary>
-          <propertyExpansion>basedir=${basedir}</propertyExpansion>
-          <propertyExpansion>licensedir=${log4jParentDir}/checkstyle-header.txt</propertyExpansion>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>${findbugs.plugin.version}</version>
-        <configuration>
-          <fork>true</fork>
-          <jvmArgs>-Duser.language=en</jvmArgs>
-          <threshold>Normal</threshold>
-          <effort>Default</effort>
-          <excludeFilterFile>${log4jParentDir}/findbugs-exclude-filter.xml</excludeFilterFile>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jxr-plugin</artifactId>
-        <version>${jxr.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <id>non-aggregate</id>
-            <reports>
-              <report>jxr</report>
-            </reports>
-          </reportSet>
-          <reportSet>
-            <id>aggregate</id>
-            <reports>
-              <report>aggregate</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-pmd-plugin</artifactId>
         <version>${pmd.plugin.version}</version>
         <configuration>


[48/50] logging-log4j2 git commit: Fix sample code formatting

Posted by mi...@apache.org.
Fix sample code formatting


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b3bc8e92
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b3bc8e92
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b3bc8e92

Branch: refs/heads/master
Commit: b3bc8e928551cd2d1c1a04609b6f7a2fe245b6ee
Parents: ca59f13
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sat Aug 27 11:46:51 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sat Aug 27 11:46:51 2016 +0200

----------------------------------------------------------------------
 src/site/xdoc/manual/scala-api.xml | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b3bc8e92/src/site/xdoc/manual/scala-api.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/scala-api.xml b/src/site/xdoc/manual/scala-api.xml
index 0169717..b207468 100644
--- a/src/site/xdoc/manual/scala-api.xml
+++ b/src/site/xdoc/manual/scala-api.xml
@@ -41,13 +41,14 @@
                 </p>
 
                 <h4>Example</h4>
-                <pre class="prettyprint linenums">import org.apache.logging.log4j.scala.Logging
+                <pre class="prettyprint linenums">
+import org.apache.logging.log4j.scala.Logging
 
-                    class MyClass extends BaseClass with Logging {
-                      def doStuff(): Unit = {
-                        logger.info("Doing stuff")
-                      }
-                    }
+class MyClass extends BaseClass with Logging {
+  def doStuff(): Unit = {
+    logger.info("Doing stuff")
+  }
+}
                 </pre>
                 <p>
                     The output from the call to logger.info() will vary significantly depending on the configuration
@@ -64,7 +65,7 @@
                     to achieve this:
                 </p>
                 <pre class="prettyprint">
-                    logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBirthday}")
+logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBirthday}")
                 </pre>
                 <p>
                     Since the Scala Logger is implemented with macros, the String construction and method invocations


[23/50] logging-log4j2 git commit: Add TODO Added TODOs

Posted by mi...@apache.org.
Add TODO
Added TODOs


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/e45e82fc
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/e45e82fc
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/e45e82fc

Branch: refs/heads/master
Commit: e45e82fc9156c37b5b5aafdb59f3d43f3fc75422
Parents: cda3928
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 28 17:40:34 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Jun 29 10:55:36 2016 +0200

----------------------------------------------------------------------
 .../src/main/scala/org/apache/logging/log4j/scala/Logger.scala  | 5 ++++-
 .../src/main/scala/org/apache/logging/log4j/scala/Logger.scala  | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e45e82fc/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 c662ef1..8fe926c 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
@@ -60,7 +60,7 @@ object Logger {
   * 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) {
+class Logger private(val delegate: ExtendedLogger) { // TODO extends AnyVal ?
 
   private final val FQCN = classOf[Logger].getName
 
@@ -619,6 +619,9 @@ class Logger private(val delegate: ExtendedLogger) {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
+
+  // TODO inline those to get FQCN correct? make macro of other trace methods as well
+
   /** Should normally not be used directly from application code, but needs to be public for access by macros. */
   def traceEntryParams(params: Any*): EntryMessage = {
     delegate.traceEntry(null, params) // TODO should not do ifEnabled check

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e45e82fc/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 c662ef1..f58b8df 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
@@ -431,7 +431,7 @@ class Logger private(val delegate: ExtendedLogger) {
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
 
-  // TODO fix FQCN for flow logging
+  // TODO fix FQCN for flow logging - Break out flow logging logic from AbstractLogger into somethimg accessible from Scala API ?
 
   /**
     * Logs entry to a method. Used when the method in question has no parameters or when the parameters should not be


[08/50] logging-log4j2 git commit: Give attribution to ScalaLogging

Posted by mi...@apache.org.
Give attribution to ScalaLogging


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/75277a48
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/75277a48
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/75277a48

Branch: refs/heads/master
Commit: 75277a485240449f7306269a7a2ffd5080ee3679
Parents: f99223e
Author: Mikael St�ldal <mi...@magine.com>
Authored: Sun Jun 19 22:00:37 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Sun Jun 19 22:00:37 2016 +0200

----------------------------------------------------------------------
 .../main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala   | 3 +++
 .../main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala   | 3 +++
 2 files changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/75277a48/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 5f119bb..c915ffb 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
@@ -23,6 +23,9 @@ 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}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/75277a48/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 25fc5cf..440857f 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
@@ -23,6 +23,9 @@ 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 }


[43/50] logging-log4j2 git commit: Scala Logger extends AnyVal

Posted by mi...@apache.org.
Scala Logger extends AnyVal


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/de52134d
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/de52134d
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/de52134d

Branch: refs/heads/master
Commit: de52134dbaf9e060f0dde4e41cb1a38e3040cfed
Parents: bcc14d1
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jul 26 18:39:38 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jul 26 18:39:38 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala     | 16 +++++++---------
 .../org/apache/logging/log4j/scala/Logger.scala     | 16 +++++++---------
 2 files changed, 14 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/de52134d/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 4ad20e1..b42cd5a 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
@@ -29,7 +29,9 @@ import scala.language.experimental.macros
   */
 object Logger {
 
-  /**
+  final val FQCN = getClass.getName
+
+    /**
     * Create a properly named [[Logger]] for a given class.
     *
     * @param clazz the class
@@ -60,11 +62,7 @@ object Logger {
   * 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) {
-  // TODO extends AnyVal ?
-
-  private final val FQCN = classOf[Logger].getName
-
+class Logger private(val delegate: ExtendedLogger) extends AnyVal {
 
   def fatal(marker: Marker, message: Message): Unit =
   macro LoggerMacro.fatalMarkerMsg
@@ -560,7 +558,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, message, cause)
+    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
@@ -574,7 +572,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause)
+    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
@@ -588,7 +586,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause)
+    delegate.logMessage(Logger.FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause)
   }
 
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/de52134d/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 4ad20e1..b42cd5a 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
@@ -29,7 +29,9 @@ import scala.language.experimental.macros
   */
 object Logger {
 
-  /**
+  final val FQCN = getClass.getName
+
+    /**
     * Create a properly named [[Logger]] for a given class.
     *
     * @param clazz the class
@@ -60,11 +62,7 @@ object Logger {
   * 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) {
-  // TODO extends AnyVal ?
-
-  private final val FQCN = classOf[Logger].getName
-
+class Logger private(val delegate: ExtendedLogger) extends AnyVal {
 
   def fatal(marker: Marker, message: Message): Unit =
   macro LoggerMacro.fatalMarkerMsg
@@ -560,7 +558,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, message, cause)
+    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
@@ -574,7 +572,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause)
+    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
@@ -588,7 +586,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param cause   cause or `null`
     */
   def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
-    delegate.logMessage(FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause)
+    delegate.logMessage(Logger.FQCN, level, marker, delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage(message), cause)
   }
 
 }


[42/50] logging-log4j2 git commit: Bump version

Posted by mi...@apache.org.
Bump version


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/bcc14d1f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/bcc14d1f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/bcc14d1f

Branch: refs/heads/master
Commit: bcc14d1f385b9929eb2014d85c7e4b167db31645
Parents: 6d353ff
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jul 26 16:42:09 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jul 26 16:42:09 2016 +0200

----------------------------------------------------------------------
 log4j-api-scala_2.10/pom.xml    | 2 +-
 log4j-api-scala_2.11/pom.xml    | 2 +-
 log4j-samples/scala-api/pom.xml | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/bcc14d1f/log4j-api-scala_2.10/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.10/pom.xml b/log4j-api-scala_2.10/pom.xml
index 7768d4c..c8b4a5f 100644
--- a/log4j-api-scala_2.10/pom.xml
+++ b/log4j-api-scala_2.10/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.6.2-SNAPSHOT</version>
+    <version>2.6.3-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-api-scala_2.10</artifactId>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/bcc14d1f/log4j-api-scala_2.11/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/pom.xml b/log4j-api-scala_2.11/pom.xml
index 5931ced..dd05844 100644
--- a/log4j-api-scala_2.11/pom.xml
+++ b/log4j-api-scala_2.11/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.6.2-SNAPSHOT</version>
+    <version>2.6.3-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-api-scala_2.11</artifactId>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/bcc14d1f/log4j-samples/scala-api/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/pom.xml b/log4j-samples/scala-api/pom.xml
index a0f87ab..7cae662 100644
--- a/log4j-samples/scala-api/pom.xml
+++ b/log4j-samples/scala-api/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <artifactId>log4j-samples</artifactId>
     <groupId>org.apache.logging.log4j.samples</groupId>
-    <version>2.6.2-SNAPSHOT</version>
+    <version>2.6.3-SNAPSHOT</version>
   </parent>
   <artifactId>log4j-samples-scala-api</artifactId>
   <packaging>jar</packaging>


[44/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2e5b2591
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2e5b2591
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2e5b2591

Branch: refs/heads/master
Commit: 2e5b2591913af0d43cb9f781f35466ac2da9f202
Parents: de52134 2490cbe
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Aug 3 13:33:32 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Aug 3 13:33:32 2016 +0200

----------------------------------------------------------------------
 log4j-1.2-api/pom.xml                           |   1 +
 .../logging/log4j/message/ObjectMessage.java    |  10 ++
 .../log4j/message/ReusableObjectMessage.java    |  10 ++
 .../org/apache/logging/log4j/util/Unbox.java    |   1 +
 .../apache/logging/log4j/TraceLoggingTest.java  |   1 -
 .../logging/log4j/junit/BundleTestInfo.java     | 137 +++++++++---------
 .../apache/logging/log4j/junit/OsgiRule.java    | 141 ++++++++++---------
 log4j-core/.gitignore                           |  11 +-
 log4j-core/pom.xml                              |  10 ++
 .../rolling/action/FileRenameAction.java        |   1 -
 .../core/pattern/DatePatternConverter.java      |   2 +-
 .../log4j/core/pattern/HighlightConverter.java  |  38 +++--
 .../log4j/core/pattern/JAnsiTextRenderer.java   |   2 -
 .../log4j/core/pattern/NameAbbreviator.java     |   2 +
 .../log4j/core/pattern/StyleConverter.java      |  24 ++--
 .../apache/logging/log4j/core/util/Loader.java  |   1 -
 .../core/util/datetime/FastDateParser.java      |  54 +++----
 .../core/util/datetime/FixedDateFormat.java     |  77 ++++++++--
 .../core/layout/CsvParameterLayoutTest.java     |   1 -
 .../osgi/equinox/EquinoxLoadCoreBundleTest.java |   6 +-
 .../osgi/felix/FelixLoadCoreBundleTest.java     |   4 +
 .../core/pattern/DatePatternConverterTest.java  |  22 +++
 .../core/pattern/HighlightConverterTest.java    |  78 ++++++++++
 .../core/util/datetime/FixedDateFormatTest.java |  35 +++--
 log4j-core/src/test/resources/gcFreeLogging.xml |  11 +-
 .../resources/gcFreeMixedSyncAsyncLogging.xml   |  10 +-
 log4j-core/src/test/resources/log4j-style.xml   |   4 +-
 log4j-flume-ng/pom.xml                          |   1 +
 log4j-jmx-gui/pom.xml                           |   1 +
 log4j-jul/pom.xml                               |   1 +
 log4j-nosql/pom.xml                             |   1 +
 .../org/apache/logging/slf4j/Log4j1222Test.java |   1 -
 log4j-web/pom.xml                               |   1 +
 pom.xml                                         |   6 +
 src/changes/announcement.vm                     |  15 +-
 src/changes/changes.xml                         |  26 +++-
 src/site/xdoc/manual/garbagefree.xml            |  10 +-
 src/site/xdoc/manual/lookups.xml                |  18 +--
 38 files changed, 530 insertions(+), 245 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2e5b2591/pom.xml
----------------------------------------------------------------------


[38/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/27c0f862
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/27c0f862
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/27c0f862

Branch: refs/heads/master
Commit: 27c0f862b602727c2a751f8da2733e53d48425c9
Parents: 403bb13 5b01d11
Author: Mikael St�ldal <mi...@magine.com>
Authored: Thu Jul 7 13:26:13 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Thu Jul 7 13:26:13 2016 +0200

----------------------------------------------------------------------
 RELEASE-NOTES.txt                               |   66 +-
 log4j-1.2-api/pom.xml                           |    2 +-
 log4j-api/pom.xml                               |    2 +-
 log4j-bom/pom.xml                               |    2 +-
 log4j-core/pom.xml                              |    2 +-
 .../appender/rolling/CronTriggeringPolicy.java  |   37 +-
 .../rolling/DefaultRolloverStrategy.java        |    9 +-
 .../rolling/OnStartupTriggeringPolicy.java      |    3 +
 .../core/appender/rolling/PatternProcessor.java |   12 +-
 .../appender/rolling/RollingFileManager.java    |   10 +
 .../rolling/action/CommonsCompressAction.java   |    9 +-
 .../rolling/action/FileRenameAction.java        |   68 +-
 .../core/config/ConfigurationScheduler.java     |   24 +-
 .../log4j/core/config/CronScheduledFuture.java  |   43 +-
 .../log4j/core/filter/AbstractFilter.java       |    3 +-
 .../log4j/core/filter/ThresholdFilter.java      |   16 +-
 .../log4j/core/layout/PatternLayout.java        |   15 +-
 .../rolling/OnStartupTriggeringPolicyTest.java  |   23 +-
 .../rolling/RollingAppenderCronTest.java        |    9 +
 .../rolling/RollingAppenderSizeTest.java        |    6 +
 .../logging/log4j/junit/CleanFolders.java       |   28 +-
 log4j-distribution/pom.xml                      |    2 +-
 log4j-flume-ng/pom.xml                          |    2 +-
 log4j-iostreams/pom.xml                         |    2 +-
 log4j-jcl/pom.xml                               |    2 +-
 log4j-jmx-gui/pom.xml                           |    2 +-
 log4j-jul/pom.xml                               |    2 +-
 log4j-liquibase/pom.xml                         |    2 +-
 log4j-nosql/pom.xml                             |    2 +-
 log4j-perf/pom.xml                              |    2 +-
 log4j-samples/configuration/pom.xml             |    2 +-
 log4j-samples/flume-common/pom.xml              |    2 +-
 log4j-samples/flume-embedded/pom.xml            |    2 +-
 log4j-samples/flume-remote/pom.xml              |    2 +-
 log4j-samples/loggerProperties/pom.xml          |    2 +-
 log4j-samples/pom.xml                           |    2 +-
 log4j-slf4j-impl/pom.xml                        |    2 +-
 log4j-taglib/pom.xml                            |    2 +-
 log4j-to-slf4j/pom.xml                          |    2 +-
 log4j-web/pom.xml                               |    2 +-
 pom.xml                                         |   10 +-
 src/changes/announcement.vm                     |    2 +-
 src/changes/changes.xml                         | 5562 +++++++++---------
 src/site/apt/download.apt.vm                    |   15 +
 src/site/resources/images/logo.png              |  Bin 41622 -> 40736 bytes
 src/site/resources/logo/logo-java-2-2.6.2.png   |  Bin 0 -> 40736 bytes
 src/site/resources/logo/logo-java-2-2.6.2.xcf   |  Bin 0 -> 66719 bytes
 src/site/site.xml                               |    5 +
 48 files changed, 3101 insertions(+), 2920 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/27c0f862/log4j-bom/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/27c0f862/log4j-samples/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/27c0f862/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/27c0f862/src/site/site.xml
----------------------------------------------------------------------


[06/50] logging-log4j2 git commit: Add missing methods

Posted by mi...@apache.org.
Add missing methods


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2b713565
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2b713565
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2b713565

Branch: refs/heads/master
Commit: 2b713565687be3b46d1eb1e6a44ddc7e403122d1
Parents: 88044f3
Author: Mikael St�ldal <mi...@magine.com>
Authored: Sun Jun 19 21:13:22 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Sun Jun 19 21:13:22 2016 +0200

----------------------------------------------------------------------
 .../scala/org/apache/logging/log4j/scala/Logger.scala     | 10 ++++++++--
 .../scala/org/apache/logging/log4j/scala/Logger.scala     | 10 ++++++++--
 2 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2b713565/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 783073f..7284f84 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
@@ -290,7 +290,9 @@ class Logger(val delegate: ExtendedLogger) {
 
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
+
   // TODO fix FQCN for flow logging
+
   def traceEntry(): EntryMessage = delegate.traceEntry()
 
   def traceEntry(params: Any*): EntryMessage =
@@ -298,12 +300,16 @@ class Logger(val delegate: ExtendedLogger) {
 
   def traceEntry(message: Message): EntryMessage = delegate.traceEntry(message)
 
-  def traceExit[R](result: R): R = delegate.traceExit(result)
-
   def traceExit(): Unit = delegate.traceExit()
 
+  def traceExit[R](result: R): R = delegate.traceExit(result)
+
   def traceExit(entryMessage: EntryMessage): Unit = delegate.traceExit(entryMessage)
 
+  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 throwing[T <: Throwable](t: T): T = delegate.throwing(t)
 
   def throwing[T <: Throwable](level: Level, t: T): T = delegate.throwing(level, t)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2b713565/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 783073f..7284f84 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
@@ -290,7 +290,9 @@ class Logger(val delegate: ExtendedLogger) {
 
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
+
   // TODO fix FQCN for flow logging
+
   def traceEntry(): EntryMessage = delegate.traceEntry()
 
   def traceEntry(params: Any*): EntryMessage =
@@ -298,12 +300,16 @@ class Logger(val delegate: ExtendedLogger) {
 
   def traceEntry(message: Message): EntryMessage = delegate.traceEntry(message)
 
-  def traceExit[R](result: R): R = delegate.traceExit(result)
-
   def traceExit(): Unit = delegate.traceExit()
 
+  def traceExit[R](result: R): R = delegate.traceExit(result)
+
   def traceExit(entryMessage: EntryMessage): Unit = delegate.traceExit(entryMessage)
 
+  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 throwing[T <: Throwable](t: T): T = delegate.throwing(t)
 
   def throwing[T <: Throwable](level: Level, t: T): T = delegate.throwing(level, t)


[12/50] logging-log4j2 git commit: Fix typo

Posted by mi...@apache.org.
Fix typo


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f4f6aa20
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f4f6aa20
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f4f6aa20

Branch: refs/heads/master
Commit: f4f6aa20730f4afd530bec51a61978ef64f89922
Parents: 8a47e9a
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sun Jun 26 20:03:20 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sun Jun 26 20:03:20 2016 +0200

----------------------------------------------------------------------
 .../src/main/scala/org/apache/logging/log4j/scala/Logger.scala     | 2 +-
 src/site/xdoc/manual/scala-api.xml                                 | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f4f6aa20/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 16156f4..79ae8de 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
@@ -54,7 +54,7 @@ object Logger {
   * to achieve this:
   *
   * {{{
-  * logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBrithday}")
+  * 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

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f4f6aa20/src/site/xdoc/manual/scala-api.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/scala-api.xml b/src/site/xdoc/manual/scala-api.xml
index 5d4c6e5..ec6c955 100644
--- a/src/site/xdoc/manual/scala-api.xml
+++ b/src/site/xdoc/manual/scala-api.xml
@@ -54,7 +54,7 @@ class MyClass extends BaseClass with Logging {
                     <a href="http://docs.scala-lang.org/overviews/core/string-interpolation.html">string interpolation</a>
                     to achieve this:
                 </p>
-                <pre class="prettyprint">logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBrithday}")</pre>
+                <pre class="prettyprint">logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBirthday}")</pre>
                 <p>
                     Since the Scala Logger is implemented with macros, the String construction and method invocations
                     will only occur when debug logging is enabled.


[18/50] logging-log4j2 git commit: Fix Scala API docs

Posted by mi...@apache.org.
Fix Scala API docs


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/20598dac
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/20598dac
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/20598dac

Branch: refs/heads/master
Commit: 20598dac93d149d4338d93e50c357a55dcc69251
Parents: c00ecb2
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Mon Jun 27 13:49:41 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Mon Jun 27 13:49:41 2016 +0200

----------------------------------------------------------------------
 log4j-api-scala_2.11/src/site/site.xml       | 52 -----------------------
 log4j-api-scala_2.11/src/site/xdoc/index.xml | 43 -------------------
 src/site/xdoc/manual/scala-api.xml           | 33 +++++++++-----
 3 files changed, 23 insertions(+), 105 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/20598dac/log4j-api-scala_2.11/src/site/site.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/src/site/site.xml b/log4j-api-scala_2.11/src/site/site.xml
deleted file mode 100644
index f3c878f..0000000
--- a/log4j-api-scala_2.11/src/site/site.xml
+++ /dev/null
@@ -1,52 +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.
-
--->
-<project name="Log4j Scala API"
-         xmlns="http://maven.apache.org/DECORATION/1.4.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd">
-  <body>
-    <links>
-      <item name="Apache" href="http://www.apache.org/" />
-      <item name="Logging Services" href="http://logging.apache.org/"/>
-      <item name="Log4j" href="../index.html"/>
-    </links>
-
-    <!-- Component-specific reports -->
-    <menu ref="reports"/>
-
-	<!-- Overall Project Info -->
-    <menu name="Log4j Project Information" img="icon-info-sign">
-      <item name="Dependencies" href="../dependencies.html" />
-      <item name="Dependency Convergence" href="../dependency-convergence.html" />
-      <item name="Dependency Management" href="../dependency-management.html" />
-      <item name="Project Team" href="../team-list.html" />
-      <item name="Mailing Lists" href="../mail-lists.html" />
-      <item name="Issue Tracking" href="../issue-tracking.html" />
-      <item name="Project License" href="../license.html" />
-      <item name="Source Repository" href="../source-repository.html" />
-      <item name="Project Summary" href="../project-summary.html" />
-    </menu>
-
-    <menu name="Log4j Project Reports" img="icon-cog">
-      <item name="Changes Report" href="../changes-report.html" />
-      <item name="JIRA Report" href="../jira-report.html" />
-      <item name="Surefire Report" href="../surefire-report.html" />
-      <item name="RAT Report" href="../rat-report.html" />
-    </menu>
-  </body>
-</project>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/20598dac/log4j-api-scala_2.11/src/site/xdoc/index.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/src/site/xdoc/index.xml b/log4j-api-scala_2.11/src/site/xdoc/index.xml
deleted file mode 100644
index a8bf5ec..0000000
--- a/log4j-api-scala_2.11/src/site/xdoc/index.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.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.
--->
-
-<document>
-    <properties>
-        <title>Log4j 2 Scala API</title>
-        <author email="mikes@apache.org">Mikael St�ldal</author>
-    </properties>
-
-    <body>
-        <section name="Log4j Scala 2 API">
-
-            <p>
-                A convenient Scala wrapper for the
-                <a href="../log4j-api/apidocs/org/apache/logging/log4j/Logger.html">Logger</a>
-                API.
-            </p>
-
-        </section>
-
-        <section name="Requirements">
-           <p>
-             Log4j 2 Scala API is dependent on the Log4j 2 API, Scala runtime library and reflection.
-           </p>
-        </section>
-
-    </body>
-</document>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/20598dac/src/site/xdoc/manual/scala-api.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/scala-api.xml b/src/site/xdoc/manual/scala-api.xml
index 660289e..4f3d994 100644
--- a/src/site/xdoc/manual/scala-api.xml
+++ b/src/site/xdoc/manual/scala-api.xml
@@ -20,7 +20,7 @@
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
     <properties>
-        <title>Log4j 2 API</title>
+        <title>Log4j 2 Scala API</title>
         <author email="mikes@apache.org">Mikael St�ldal</author>
     </properties>
 
@@ -33,14 +33,22 @@
                     <a href="../log4j-api/apidocs/org/apache/logging/log4j/Logger.html">Logger</a>
                     API.
                 </p>
+
+                <h4>Requirements</h4>
+                <p>
+                    Log4j 2 Scala API is dependent on the Log4j 2 API, Scala runtime library and reflection.
+                    It currently supports Scala 2.10 and 2.11.
+                </p>
+
                 <h4>Example</h4>
                 <pre class="prettyprint linenums">import org.apache.logging.log4j.scala.Logging
 
-class MyClass extends BaseClass with Logging {
-    def doStuff(): Unit = {
-        logger.info("Doing stuff")
-    }
-}</pre>
+                    class MyClass extends BaseClass with Logging {
+                      def doStuff(): Unit = {
+                        logger.info("Doing stuff")
+                      }
+                    }
+                </pre>
                 <p>
                     The output from the call to logger.info() will vary significantly depending on the configuration
                     used. See the
@@ -51,10 +59,13 @@ class MyClass extends BaseClass with Logging {
                 <p>
                     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
-                    <a href="http://docs.scala-lang.org/overviews/core/string-interpolation.html">string interpolation</a>
+                    <a href="http://docs.scala-lang.org/overviews/core/string-interpolation.html">string interpolation
+                    </a>
                     to achieve this:
                 </p>
-                <pre class="prettyprint">logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBirthday}")</pre>
+                <pre class="prettyprint">
+                    logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBirthday}")
+                </pre>
                 <p>
                     Since the Scala Logger is implemented with macros, the String construction and method invocations
                     will only occur when debug logging is enabled.
@@ -65,11 +76,13 @@ class MyClass extends BaseClass with Logging {
                     Most logging implementations use a hierarchical scheme for matching logger names with logging
                     configuration. In this scheme the logger name hierarchy is represented by '.' characters in the
                     logger name, in a fashion very similar to the hierarchy used for Java/Scala package names.
-                    The Logging trait will automatically name the Logger accordingly to the class it is being used in.
+                    The <a href="../log4j-api-scala_2.11/scaladocs/index.html#org.apache.logging.log4j.scala.Logging">Logging trait</a> will automatically name the Logger accordingly to the class it is being used in.
                 </p>
 
                 <h4>ScalaDoc</h4>
-                <p><a href="../log4j-api-scala_2.11/scaladocs/index.html#org.apache.logging.log4j.scala.package">ScalaDoc</a>.</p>
+                <p>
+                    <a href="../log4j-api-scala_2.11/scaladocs/index.html#org.apache.logging.log4j.scala.package">ScalaDoc</a>.
+                </p>
 
             </subsection>
         </section>


[30/50] logging-log4j2 git commit: Fix Scaladoc

Posted by mi...@apache.org.
Fix Scaladoc


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/c6c49481
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c6c49481
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c6c49481

Branch: refs/heads/master
Commit: c6c494813ddc044d93315346dcc28f3c76e047eb
Parents: 567acc7
Author: Mikael St�ldal <mi...@magine.com>
Authored: Thu Jun 30 10:42:21 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Thu Jun 30 10:42:21 2016 +0200

----------------------------------------------------------------------
 .../main/scala/org/apache/logging/log4j/scala/Logger.scala   | 8 ++++----
 .../main/scala/org/apache/logging/log4j/scala/Logger.scala   | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c6c49481/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 4999bdb..2f78ba0 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
@@ -417,7 +417,7 @@ class Logger private(val delegate: ExtendedLogger) {
     *
     * Note that passing in `Level.OFF` always returns `true`.
     *
-    * @param level the level to check
+    * @param level the Level to check
     * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
     */
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
@@ -425,9 +425,9 @@ class Logger private(val delegate: ExtendedLogger) {
   /**
     * Checks whether this Logger is enabled for the the given `Level` and `Marker`.
     *
-    * @param level  the level to check
-    * @param marker The marker to check
-    * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
+    * @param level  the Level to check
+    * @param marker the Marker to check
+    * @return boolean - `true` if this Logger is enabled for the level and marker, `false` otherwise
     */
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c6c49481/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 4999bdb..2f78ba0 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
@@ -417,7 +417,7 @@ class Logger private(val delegate: ExtendedLogger) {
     *
     * Note that passing in `Level.OFF` always returns `true`.
     *
-    * @param level the level to check
+    * @param level the Level to check
     * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
     */
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
@@ -425,9 +425,9 @@ class Logger private(val delegate: ExtendedLogger) {
   /**
     * Checks whether this Logger is enabled for the the given `Level` and `Marker`.
     *
-    * @param level  the level to check
-    * @param marker The marker to check
-    * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
+    * @param level  the Level to check
+    * @param marker the Marker to check
+    * @return boolean - `true` if this Logger is enabled for the level and marker, `false` otherwise
     */
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 


[02/50] logging-log4j2 git commit: Import unit tests

Posted by mi...@apache.org.
Import unit tests


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/ed201dff
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/ed201dff
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/ed201dff

Branch: refs/heads/master
Commit: ed201dffecfa579f643409a8989760eb471b8d90
Parents: 2cc9c79
Author: Mikael St�ldal <mi...@magine.com>
Authored: Sat Jun 18 21:31:56 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Sat Jun 18 21:31:56 2016 +0200

----------------------------------------------------------------------
 .../apache/logging/log4j/scala/LoggerTest.scala | 440 ++++++++++---------
 .../apache/logging/log4j/scala/LoggerTest.scala | 440 ++++++++++---------
 2 files changed, 470 insertions(+), 410 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ed201dff/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 ea8225c..1c3a126 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
@@ -28,374 +28,404 @@ import org.scalatest.{FunSuite, Matchers}
 
 case class Custom(i: Int)
 
+trait Manager {
+  def fetchValue(): Int
+}
+
 @RunWith(classOf[JUnitRunner])
 class LoggerTest extends FunSuite with Matchers with MockitoSugar {
 
   val msg = new ParameterizedMessage("msg {}", 17)
-  val stringMsg = "string msg"
-  val cseqMsg = new StringBuilder().append("cseq msg")
+  val cseqMsg: CharSequence = new StringBuilder().append("cseq msg")
   val objectMsg = Custom(17)
   val cause = new RuntimeException("cause")
   val marker = MarkerManager.getMarker("marker")
 
+  def fixture =
+    new {
+      val mockLogger = {
+        val mockLogger = mock[ExtendedLogger]
+        when(mockLogger.getMessageFactory).thenReturn(new ParameterizedMessageFactory)
+        mockLogger
+      }
+      val manager = {
+        val mockManager = mock[Manager]
+        when(mockManager.fetchValue()).thenReturn(4711)
+        mockManager
+      }
+    }
+
   test("fatal enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.FATAL)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.fatal(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.FATAL), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.FATAL)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.fatal(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.FATAL), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("fatal disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.FATAL)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.fatal(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.FATAL)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.fatal(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("error enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.ERROR)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.error(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.ERROR), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.ERROR)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.error(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.ERROR), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("error disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.ERROR)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.error(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.ERROR)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.error(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("warn enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.WARN)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.warn(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.WARN), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.WARN)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.warn(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.WARN), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("warn disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.WARN)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.warn(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.WARN)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.warn(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("info enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.info(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.info(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("info disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.info(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.info(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("debug enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.DEBUG)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.debug(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.DEBUG), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.DEBUG)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.debug(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.DEBUG), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("debug disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.DEBUG)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.debug(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.DEBUG)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.debug(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("trace enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.TRACE)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.trace(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.TRACE), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.trace(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.TRACE), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("trace disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.TRACE)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.trace(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.trace(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
 
   test("log enabled with Message message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, msg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(null))
   }
 
   test("log disabled with Message message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, msg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, marker, stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("log disabled with String message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, marker, stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("log enabled with CharSequence message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, cseqMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
   }
 
   test("log disabled with CharSequence message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, cseqMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, objectMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
   }
 
   test("log disabled with Object message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, objectMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, msg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(cause))
   }
 
   test("log disabled with Message message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, msg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, marker, stringMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
+    verify(f.manager).fetchValue()
   }
 
   test("log disabled with String message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, marker, stringMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("log enabled with CharSequence message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, cseqMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
   }
 
   test("log disabled with CharSequence message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, cseqMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, objectMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
   }
 
   test("log disabled with Object message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, objectMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, msg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(null))
   }
 
   test("log disabled with Message message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, msg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("log disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("log enabled with CharSequence message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, cseqMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
   }
 
   test("log disabled with CharSequence message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, cseqMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, objectMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
   }
 
   test("log disabled with Object message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, objectMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, msg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(cause))
   }
 
   test("log disabled with Message message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, msg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, stringMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
+    verify(f.manager).fetchValue()
   }
 
   test("log disabled with String message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, stringMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("log enabled with CharSequence message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, cseqMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
   }
 
   test("log disabled with CharSequence message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, cseqMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, objectMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
   }
 
   test("log disabled with Object message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, objectMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
-  }
-
-
-  def buildMockLogger: ExtendedLogger = {
-    val mockLogger = mock[ExtendedLogger]
-    when(mockLogger.getMessageFactory).thenReturn(new ParameterizedMessageFactory)
-    mockLogger
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ed201dff/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 ea8225c..1c3a126 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
@@ -28,374 +28,404 @@ import org.scalatest.{FunSuite, Matchers}
 
 case class Custom(i: Int)
 
+trait Manager {
+  def fetchValue(): Int
+}
+
 @RunWith(classOf[JUnitRunner])
 class LoggerTest extends FunSuite with Matchers with MockitoSugar {
 
   val msg = new ParameterizedMessage("msg {}", 17)
-  val stringMsg = "string msg"
-  val cseqMsg = new StringBuilder().append("cseq msg")
+  val cseqMsg: CharSequence = new StringBuilder().append("cseq msg")
   val objectMsg = Custom(17)
   val cause = new RuntimeException("cause")
   val marker = MarkerManager.getMarker("marker")
 
+  def fixture =
+    new {
+      val mockLogger = {
+        val mockLogger = mock[ExtendedLogger]
+        when(mockLogger.getMessageFactory).thenReturn(new ParameterizedMessageFactory)
+        mockLogger
+      }
+      val manager = {
+        val mockManager = mock[Manager]
+        when(mockManager.fetchValue()).thenReturn(4711)
+        mockManager
+      }
+    }
+
   test("fatal enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.FATAL)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.fatal(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.FATAL), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.FATAL)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.fatal(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.FATAL), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("fatal disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.FATAL)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.fatal(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.FATAL)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.fatal(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("error enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.ERROR)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.error(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.ERROR), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.ERROR)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.error(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.ERROR), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("error disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.ERROR)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.error(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.ERROR)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.error(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("warn enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.WARN)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.warn(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.WARN), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.WARN)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.warn(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.WARN), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("warn disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.WARN)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.warn(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.WARN)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.warn(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("info enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.info(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.info(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("info disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.info(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.info(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("debug enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.DEBUG)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.debug(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.DEBUG), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.DEBUG)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.debug(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.DEBUG), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("debug disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.DEBUG)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.debug(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.DEBUG)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.debug(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("trace enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.TRACE)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.trace(stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.TRACE), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.trace(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.TRACE), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("trace disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.TRACE)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.trace(stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.trace(s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
 
   test("log enabled with Message message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, msg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(null))
   }
 
   test("log disabled with Message message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, msg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, marker, stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("log disabled with String message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, marker, stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("log enabled with CharSequence message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, cseqMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
   }
 
   test("log disabled with CharSequence message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, cseqMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, objectMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
   }
 
   test("log disabled with Object message and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, objectMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, msg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(cause))
   }
 
   test("log disabled with Message message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, msg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, marker, stringMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
+    verify(f.manager).fetchValue()
   }
 
   test("log disabled with String message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, marker, stringMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("log enabled with CharSequence message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, cseqMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
   }
 
   test("log disabled with CharSequence message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, cseqMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, objectMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
   }
 
   test("log disabled with Object message and cause and Marker") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, marker, objectMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, msg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(null))
   }
 
   test("log disabled with Message message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, msg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, stringMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    verify(f.manager).fetchValue()
   }
 
   test("log disabled with String message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, stringMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("log enabled with CharSequence message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, cseqMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
   }
 
   test("log disabled with CharSequence message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, cseqMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, objectMsg)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
   }
 
   test("log disabled with Object message") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, objectMsg)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, msg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(cause))
   }
 
   test("log disabled with Message message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, msg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, stringMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
+    verify(f.manager).fetchValue()
   }
 
   test("log disabled with String message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
-    logger.log(Level.INFO, stringMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
+    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.manager, never).fetchValue()
   }
 
   test("log enabled with CharSequence message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, cseqMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
   }
 
   test("log disabled with CharSequence message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, cseqMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, objectMsg, cause)
-    verify(mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
+    verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
   }
 
   test("log disabled with Object message and cause") {
-    val mockLogger = buildMockLogger
-    when(mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(mockLogger)
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
+    val logger = new Logger(f.mockLogger)
     logger.log(Level.INFO, objectMsg, cause)
-    verify(mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
-  }
-
-
-  def buildMockLogger: ExtendedLogger = {
-    val mockLogger = mock[ExtendedLogger]
-    when(mockLogger.getMessageFactory).thenReturn(new ParameterizedMessageFactory)
-    mockLogger
+    verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
 }


[16/50] logging-log4j2 git commit: Generate ScalaDoc with mvn site

Posted by mi...@apache.org.
Generate ScalaDoc with mvn site


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/01db8f5e
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/01db8f5e
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/01db8f5e

Branch: refs/heads/master
Commit: 01db8f5e56324be6db46fa9fc6b82563b7d50169
Parents: 5a1e986
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Mon Jun 27 13:10:28 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Mon Jun 27 13:10:28 2016 +0200

----------------------------------------------------------------------
 log4j-api-scala_2.10/pom.xml | 8 +++++++-
 log4j-api-scala_2.11/pom.xml | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/01db8f5e/log4j-api-scala_2.10/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.10/pom.xml b/log4j-api-scala_2.10/pom.xml
index d0d72da..7768d4c 100644
--- a/log4j-api-scala_2.10/pom.xml
+++ b/log4j-api-scala_2.10/pom.xml
@@ -31,6 +31,7 @@
     <log4jParentDir>${basedir}/..</log4jParentDir>
     <projectDir>/scala_2.10</projectDir>
     <scala.version>2.10.6</scala.version>
+    <scala.maven.plugin.version>3.2.2</scala.maven.plugin.version>
   </properties>
   <dependencies>
     <dependency>
@@ -78,7 +79,7 @@
       <plugin>
         <groupId>net.alchim31.maven</groupId>
         <artifactId>scala-maven-plugin</artifactId>
-        <version>3.2.2</version>
+        <version>${scala.maven.plugin.version}</version>
         <executions>
           <execution>
             <goals>
@@ -139,6 +140,11 @@
           <targetJdk>${maven.compile.target}</targetJdk>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.alchim31.maven</groupId>
+        <artifactId>scala-maven-plugin</artifactId>
+        <version>${scala.maven.plugin.version}</version>
+      </plugin>
     </plugins>
   </reporting>
 </project>

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/01db8f5e/log4j-api-scala_2.11/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/pom.xml b/log4j-api-scala_2.11/pom.xml
index 4b73bf0..5931ced 100644
--- a/log4j-api-scala_2.11/pom.xml
+++ b/log4j-api-scala_2.11/pom.xml
@@ -31,6 +31,7 @@
     <log4jParentDir>${basedir}/..</log4jParentDir>
     <projectDir>/scala_2.11</projectDir>
     <scala.version>2.11.7</scala.version>
+    <scala.maven.plugin.version>3.2.2</scala.maven.plugin.version>
   </properties>
   <dependencies>
     <dependency>
@@ -78,7 +79,7 @@
       <plugin>
         <groupId>net.alchim31.maven</groupId>
         <artifactId>scala-maven-plugin</artifactId>
-        <version>3.2.2</version>
+        <version>${scala.maven.plugin.version}</version>
         <executions>
           <execution>
             <goals>
@@ -139,6 +140,11 @@
           <targetJdk>${maven.compile.target}</targetJdk>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.alchim31.maven</groupId>
+        <artifactId>scala-maven-plugin</artifactId>
+        <version>${scala.maven.plugin.version}</version>
+      </plugin>
     </plugins>
   </reporting>
 </project>


[41/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/6d353ff2
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/6d353ff2
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/6d353ff2

Branch: refs/heads/master
Commit: 6d353ff2e80421890d5d7c3cab7ea9973bfe457c
Parents: 02be6e1 dcade9e
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jul 26 16:36:05 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jul 26 16:36:05 2016 +0200

----------------------------------------------------------------------
 .../plugins/visitors/PluginValueVisitor.java    |  5 +++--
 .../core/config/xml/XmlLoggerPropsTest.java     |  8 +++++--
 .../src/test/resources/log4j-loggerprops.xml    |  4 +++-
 src/changes/changes.xml                         |  6 ++++++
 src/site/xdoc/manual/appenders.xml              | 22 ++++++++++++--------
 5 files changed, 31 insertions(+), 14 deletions(-)
----------------------------------------------------------------------



[36/50] logging-log4j2 git commit: Macros for throwing and catching

Posted by mi...@apache.org.
Macros for throwing and catching


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/4668ce28
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/4668ce28
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/4668ce28

Branch: refs/heads/master
Commit: 4668ce287a6500b9257b6279621a528900931c13
Parents: 7dac62e
Author: Mikael St�ldal <mi...@magine.com>
Authored: Fri Jul 1 15:41:14 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Fri Jul 1 15:41:14 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala | 12 ++++++---
 .../logging/log4j/scala/LoggerMacro.scala       | 21 +++++++++++++++
 .../apache/logging/log4j/scala/LoggerTest.scala | 28 ++++++++++++++++++++
 .../org/apache/logging/log4j/scala/Logger.scala | 12 ++++++---
 .../logging/log4j/scala/LoggerMacro.scala       | 21 +++++++++++++++
 .../apache/logging/log4j/scala/LoggerTest.scala | 28 ++++++++++++++++++++
 .../logging/log4j/scalasample/LoggingApp.scala  |  9 +++++++
 7 files changed, 123 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4668ce28/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 1c19fcd..a5ebacf 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
@@ -534,7 +534,8 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param t the Throwable
     * @return `t`
     */
-  def throwing[T <: Throwable](t: T): T = delegate.throwing(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.
@@ -547,14 +548,16 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param t     the Throwable
     * @return `t`
     */
-  def throwing[T <: Throwable](level: Level, t: T): T = delegate.throwing(level, 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 = delegate.catching(t)
+  def catching(t: Throwable): Unit =
+  macro LoggerMacro.catching
 
   /**
     * Logs an exception or error that has been caught to a specific logging level.
@@ -562,7 +565,8 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param level The logging Level.
     * @param t     The Throwable.
     */
-  def catching(level: Level, t: Throwable): Unit = delegate.catching(level, t)
+  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

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4668ce28/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 6ff8e53..24b3c8c 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
@@ -401,4 +401,25 @@ private object LoggerMacro {
         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-log4j2/blob/4668ce28/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 4c14d5d..ba02437 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
@@ -559,4 +559,32 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).traceExit(any[Message], any[AnyRef])
   }
 
+  test("throwing") {
+    val f = fixture
+    val logger = Logger(f.mockLogger)
+    logger.throwing(cause)
+    verify(f.mockLogger).throwing(eqv(cause))
+  }
+
+  test("throwing with level") {
+    val f = fixture
+    val logger = Logger(f.mockLogger)
+    logger.throwing(Level.INFO, cause)
+    verify(f.mockLogger).throwing(eqv(Level.INFO), eqv(cause))
+  }
+
+  test("catching") {
+    val f = fixture
+    val logger = Logger(f.mockLogger)
+    logger.catching(cause)
+    verify(f.mockLogger).catching(eqv(cause))
+  }
+
+  test("catching with level") {
+    val f = fixture
+    val logger = Logger(f.mockLogger)
+    logger.catching(Level.INFO, cause)
+    verify(f.mockLogger).catching(eqv(Level.INFO), eqv(cause))
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4668ce28/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 1c19fcd..a5ebacf 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
@@ -534,7 +534,8 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param t the Throwable
     * @return `t`
     */
-  def throwing[T <: Throwable](t: T): T = delegate.throwing(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.
@@ -547,14 +548,16 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param t     the Throwable
     * @return `t`
     */
-  def throwing[T <: Throwable](level: Level, t: T): T = delegate.throwing(level, 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 = delegate.catching(t)
+  def catching(t: Throwable): Unit =
+  macro LoggerMacro.catching
 
   /**
     * Logs an exception or error that has been caught to a specific logging level.
@@ -562,7 +565,8 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param level The logging Level.
     * @param t     The Throwable.
     */
-  def catching(level: Level, t: Throwable): Unit = delegate.catching(level, t)
+  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

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4668ce28/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 5e9fa44..a091c97 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
@@ -401,4 +401,25 @@ private object LoggerMacro {
         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-log4j2/blob/4668ce28/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 4c14d5d..ba02437 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
@@ -559,4 +559,32 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).traceExit(any[Message], any[AnyRef])
   }
 
+  test("throwing") {
+    val f = fixture
+    val logger = Logger(f.mockLogger)
+    logger.throwing(cause)
+    verify(f.mockLogger).throwing(eqv(cause))
+  }
+
+  test("throwing with level") {
+    val f = fixture
+    val logger = Logger(f.mockLogger)
+    logger.throwing(Level.INFO, cause)
+    verify(f.mockLogger).throwing(eqv(Level.INFO), eqv(cause))
+  }
+
+  test("catching") {
+    val f = fixture
+    val logger = Logger(f.mockLogger)
+    logger.catching(cause)
+    verify(f.mockLogger).catching(eqv(cause))
+  }
+
+  test("catching with level") {
+    val f = fixture
+    val logger = Logger(f.mockLogger)
+    logger.catching(Level.INFO, cause)
+    verify(f.mockLogger).catching(eqv(Level.INFO), eqv(cause))
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4668ce28/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
index f00b9ee..a62620b 100644
--- a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
+++ b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
@@ -1,5 +1,6 @@
 package org.apache.logging.log4j.scalasample
 
+import org.apache.logging.log4j.Level
 import org.apache.logging.log4j.message.MessageFactory2
 import org.apache.logging.log4j.scala.Logging
 
@@ -7,6 +8,8 @@ object LoggingApp extends App with Logging {
 
   val s1 = "foo"
   val s2 = "bar"
+  val t = new RuntimeException("error")
+
   logger.info(s"Hello, world: $s1 $s2")
 
   logger.traceEntry()
@@ -19,4 +22,10 @@ object LoggingApp extends App with Logging {
   logger.traceExit(entryMessage, s2)
   logger.traceExit(logger.delegate.getMessageFactory.asInstanceOf[MessageFactory2].newMessage("bonsai": CharSequence), s2)
 
+  logger.throwing(t)
+  logger.throwing(Level.INFO, t)
+
+  logger.catching(t)
+  logger.catching(Level.INFO, t)
+
 }
\ No newline at end of file


[46/50] logging-log4j2 git commit: Fix unit tests

Posted by mi...@apache.org.
Fix unit tests


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/5c9a387b
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/5c9a387b
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/5c9a387b

Branch: refs/heads/master
Commit: 5c9a387b03db4bc3dc4c809909422a8ee4f9f774
Parents: b5a232a
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Aug 3 13:52:49 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Aug 3 13:52:49 2016 +0200

----------------------------------------------------------------------
 .../apache/logging/log4j/scala/LoggerTest.scala | 52 +++-----------------
 .../apache/logging/log4j/scala/LoggerTest.scala | 52 +++-----------------
 2 files changed, 12 insertions(+), 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5c9a387b/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 ba02437..91d67df 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
@@ -16,7 +16,7 @@
  */
 package org.apache.logging.log4j.scala
 
-import org.apache.logging.log4j.message.{DefaultFlowMessageFactory, EntryMessage, Message, ParameterizedMessage, ParameterizedMessageFactory}
+import org.apache.logging.log4j.message.{DefaultFlowMessageFactory, Message, ParameterizedMessage, ParameterizedMessageFactory}
 import org.apache.logging.log4j.spi.{AbstractLogger, ExtendedLogger}
 import org.apache.logging.log4j.{Level, Marker, MarkerManager}
 import org.junit.runner.RunWith
@@ -431,7 +431,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   }
 
 
-  test("traceEntry enabled") {
+  test("traceEntry") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -439,14 +439,6 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceEntry()
   }
 
-  ignore("traceEntry disabled") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceEntry()
-    verify(f.mockLogger, never).traceEntry()
-  }
-
   test("traceEntry enabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
@@ -479,7 +471,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).traceEntry(any[Message])
   }
 
-  test("traceExit enabled") {
+  test("traceExit") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -487,15 +479,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceExit()
   }
 
-  ignore("traceExit disabled") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceExit()
-    verify(f.mockLogger, never).traceExit()
-  }
-
-  test("traceExit enabled with result") {
+  test("traceExit with result") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -503,15 +487,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceExit(result)
   }
 
-  ignore("traceExit disabled with result") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceExit(result)
-    verify(f.mockLogger, never).traceExit(anyString())
-  }
-
-  test("traceExit enabled with entrymessage") {
+  test("traceExit with entrymessage") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -519,15 +495,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceExit(entryMsg)
   }
 
-  ignore("traceExit disabled with entrymessage") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceExit(entryMsg)
-    verify(f.mockLogger, never).traceExit(any[EntryMessage])
-  }
-
-  test("traceExit enabled with entrymessage and result") {
+  test("traceExit with entrymessage and result") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -535,14 +503,6 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceExit(entryMsg, result)
   }
 
-  ignore("traceExit disabled with entrymessage and result") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceExit(entryMsg, result)
-    verify(f.mockLogger, never).traceExit(any[EntryMessage], anyString())
-  }
-
   test("traceExit enabled with message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5c9a387b/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 ba02437..91d67df 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
@@ -16,7 +16,7 @@
  */
 package org.apache.logging.log4j.scala
 
-import org.apache.logging.log4j.message.{DefaultFlowMessageFactory, EntryMessage, Message, ParameterizedMessage, ParameterizedMessageFactory}
+import org.apache.logging.log4j.message.{DefaultFlowMessageFactory, Message, ParameterizedMessage, ParameterizedMessageFactory}
 import org.apache.logging.log4j.spi.{AbstractLogger, ExtendedLogger}
 import org.apache.logging.log4j.{Level, Marker, MarkerManager}
 import org.junit.runner.RunWith
@@ -431,7 +431,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   }
 
 
-  test("traceEntry enabled") {
+  test("traceEntry") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -439,14 +439,6 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceEntry()
   }
 
-  ignore("traceEntry disabled") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceEntry()
-    verify(f.mockLogger, never).traceEntry()
-  }
-
   test("traceEntry enabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
@@ -479,7 +471,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).traceEntry(any[Message])
   }
 
-  test("traceExit enabled") {
+  test("traceExit") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -487,15 +479,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceExit()
   }
 
-  ignore("traceExit disabled") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceExit()
-    verify(f.mockLogger, never).traceExit()
-  }
-
-  test("traceExit enabled with result") {
+  test("traceExit with result") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -503,15 +487,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceExit(result)
   }
 
-  ignore("traceExit disabled with result") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceExit(result)
-    verify(f.mockLogger, never).traceExit(anyString())
-  }
-
-  test("traceExit enabled with entrymessage") {
+  test("traceExit with entrymessage") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -519,15 +495,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceExit(entryMsg)
   }
 
-  ignore("traceExit disabled with entrymessage") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceExit(entryMsg)
-    verify(f.mockLogger, never).traceExit(any[EntryMessage])
-  }
-
-  test("traceExit enabled with entrymessage and result") {
+  test("traceExit with entrymessage and result") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
     val logger = Logger(f.mockLogger)
@@ -535,14 +503,6 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger).traceExit(entryMsg, result)
   }
 
-  ignore("traceExit disabled with entrymessage and result") {
-    val f = fixture
-    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
-    val logger = Logger(f.mockLogger)
-    logger.traceExit(entryMsg, result)
-    verify(f.mockLogger, never).traceExit(any[EntryMessage], anyString())
-  }
-
   test("traceExit enabled with message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)


[37/50] logging-log4j2 git commit: Remove isEnabled from Scala API

Posted by mi...@apache.org.
Remove isEnabled from Scala API


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/403bb132
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/403bb132
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/403bb132

Branch: refs/heads/master
Commit: 403bb1324b390ff891fad385f882e47248225b2f
Parents: 4668ce2
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sat Jul 2 17:09:13 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sat Jul 2 17:09:13 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala | 20 --------------------
 .../org/apache/logging/log4j/scala/Logger.scala | 20 --------------------
 2 files changed, 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/403bb132/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 a5ebacf..4ad20e1 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
@@ -413,26 +413,6 @@ class Logger private(val delegate: ExtendedLogger) {
 
 
   /**
-    * Checks whether this Logger is enabled for the given `Level`.
-    *
-    * Note that passing in `Level.OFF` always returns `true`.
-    *
-    * @param level the Level to check
-    * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
-    */
-  def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
-
-  /**
-    * Checks whether this Logger is enabled for the given `Level` and `Marker`.
-    *
-    * @param level  the Level to check
-    * @param marker the Marker to check
-    * @return boolean - `true` if this Logger is enabled for the level and marker, `false` otherwise
-    */
-  def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
-
-
-  /**
     * Logs entry to a method. Used when the method in question has no parameters or when the parameters should not be
     * logged.
     *

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/403bb132/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 a5ebacf..4ad20e1 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
@@ -413,26 +413,6 @@ class Logger private(val delegate: ExtendedLogger) {
 
 
   /**
-    * Checks whether this Logger is enabled for the given `Level`.
-    *
-    * Note that passing in `Level.OFF` always returns `true`.
-    *
-    * @param level the Level to check
-    * @return boolean - `true` if this Logger is enabled for the level, `false` otherwise
-    */
-  def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
-
-  /**
-    * Checks whether this Logger is enabled for the given `Level` and `Marker`.
-    *
-    * @param level  the Level to check
-    * @param marker the Marker to check
-    * @return boolean - `true` if this Logger is enabled for the level and marker, `false` otherwise
-    */
-  def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
-
-
-  /**
     * Logs entry to a method. Used when the method in question has no parameters or when the parameters should not be
     * logged.
     *


[29/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/567acc71
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/567acc71
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/567acc71

Branch: refs/heads/master
Commit: 567acc716f6d458b68611ecbec9e9c706f8802d5
Parents: 2e8adc3 3d3a30c
Author: Mikael St�ldal <mi...@magine.com>
Authored: Thu Jun 30 10:39:10 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Thu Jun 30 10:39:10 2016 +0200

----------------------------------------------------------------------
 log4j-api/src/main/java/org/apache/logging/log4j/Logger.java | 3 ---
 1 file changed, 3 deletions(-)
----------------------------------------------------------------------



[13/50] logging-log4j2 git commit: Use apply in Logger trait

Posted by mi...@apache.org.
Use apply in Logger trait


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/8abe19e0
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/8abe19e0
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/8abe19e0

Branch: refs/heads/master
Commit: 8abe19e0b41e865091655b30028ff397018402d0
Parents: f4f6aa2
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sun Jun 26 20:10:47 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sun Jun 26 20:10:47 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala |  26 +--
 .../apache/logging/log4j/scala/LoggerTest.scala | 166 +++++++++----------
 .../org/apache/logging/log4j/scala/Logger.scala |  24 +--
 .../apache/logging/log4j/scala/LoggerTest.scala | 166 +++++++++----------
 4 files changed, 191 insertions(+), 191 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8abe19e0/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 16156f4..c91d347 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
@@ -54,7 +54,7 @@ object Logger {
   * to achieve this:
   *
   * {{{
-  * logger.debug(s"Logging in user ${user.getName} with birthday ${user.calcBrithday}")
+  * 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
@@ -294,7 +294,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param marker  the marker data specific to this log statement
     * @param message the message to be logged
     */
-  def log(level: Level, marker: Marker, message: Message): Unit =
+  def apply(level: Level, marker: Marker, message: Message): Unit =
   macro LoggerMacro.logMarkerMsg
 
   /**
@@ -304,7 +304,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param marker  the marker data specific to this log statement
     * @param message the message to be logged
     */
-  def log(level: Level, marker: Marker, message: CharSequence): Unit =
+  def apply(level: Level, marker: Marker, message: CharSequence): Unit =
   macro LoggerMacro.logMarkerCseq
 
   /**
@@ -314,7 +314,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param marker  the marker data specific to this log statement
     * @param message the message to be logged
     */
-  def log(level: Level, marker: Marker, message: AnyRef): Unit =
+  def apply(level: Level, marker: Marker, message: AnyRef): Unit =
   macro LoggerMacro.logMarkerObject
 
   /**
@@ -326,7 +326,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   the cause
     */
-  def log(level: Level, marker: Marker, message: Message, cause: Throwable): Unit =
+  def apply(level: Level, marker: Marker, message: Message, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerMsgThrowable
 
   /**
@@ -338,7 +338,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   the cause
     */
-  def log(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit =
+  def apply(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerCseqThrowable
 
   /**
@@ -350,7 +350,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   the cause
     */
-  def log(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit =
+  def apply(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerObjectThrowable
 
   /**
@@ -359,7 +359,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param level   the logging level
     * @param message the message to be logged
     */
-  def log(level: Level, message: Message): Unit =
+  def apply(level: Level, message: Message): Unit =
   macro LoggerMacro.logMsg
 
   /**
@@ -368,7 +368,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param level   the logging level
     * @param message the message to be logged
     */
-  def log(level: Level, message: CharSequence): Unit =
+  def apply(level: Level, message: CharSequence): Unit =
   macro LoggerMacro.logCseq
 
   /**
@@ -377,7 +377,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param level   the logging level
     * @param message the message to be logged
     */
-  def log(level: Level, message: AnyRef): Unit =
+  def apply(level: Level, message: AnyRef): Unit =
   macro LoggerMacro.logObject
 
   /**
@@ -387,7 +387,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   a [[Throwable]]
     */
-  def log(level: Level, message: Message, cause: Throwable): Unit =
+  def apply(level: Level, message: Message, cause: Throwable): Unit =
   macro LoggerMacro.logMsgThrowable
 
   /**
@@ -397,7 +397,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   a [[Throwable]]
     */
-  def log(level: Level, message: CharSequence, cause: Throwable): Unit =
+  def apply(level: Level, message: CharSequence, cause: Throwable): Unit =
   macro LoggerMacro.logCseqThrowable
 
   /**
@@ -407,7 +407,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   a [[Throwable]]
     */
-  def log(level: Level, message: AnyRef, cause: Throwable): Unit =
+  def apply(level: Level, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logObjectThrowable
 
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8abe19e0/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 3bd4b49..6595128 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
@@ -59,7 +59,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("fatal enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.FATAL)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.fatal(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.FATAL), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -68,7 +68,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("fatal disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.FATAL)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.fatal(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -77,7 +77,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("error enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.ERROR)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.error(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.ERROR), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -86,7 +86,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("error disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.ERROR)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.error(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -95,7 +95,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("warn enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.WARN)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.warn(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.WARN), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -104,7 +104,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("warn disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.WARN)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.warn(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -113,7 +113,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("info enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.info(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -122,7 +122,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("info disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.info(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -131,7 +131,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("debug enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.DEBUG)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.debug(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.DEBUG), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -140,7 +140,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("debug disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.DEBUG)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.debug(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -149,7 +149,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("trace enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.trace(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.TRACE), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -158,7 +158,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("trace disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.trace(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -168,24 +168,24 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with Message message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, msg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, msg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(null))
   }
 
   test("log disabled with Message message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, msg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, msg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
     verify(f.manager).fetchValue()
   }
@@ -193,8 +193,8 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log disabled with String message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
   }
@@ -202,56 +202,56 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with CharSequence message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, cseqMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, cseqMsg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
   }
 
   test("log disabled with CharSequence message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, cseqMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, cseqMsg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, objectMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, objectMsg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
   }
 
   test("log disabled with Object message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, objectMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, objectMsg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, msg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, msg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(cause))
   }
 
   test("log disabled with Message message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, msg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, msg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
     verify(f.manager).fetchValue()
   }
@@ -259,8 +259,8 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log disabled with String message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
   }
@@ -268,56 +268,56 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with CharSequence message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, cseqMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, cseqMsg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
   }
 
   test("log disabled with CharSequence message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, cseqMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, cseqMsg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, objectMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, objectMsg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
   }
 
   test("log disabled with Object message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, objectMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, objectMsg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, msg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, msg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(null))
   }
 
   test("log disabled with Message message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, msg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, msg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
   }
@@ -325,8 +325,8 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
   }
@@ -334,56 +334,56 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with CharSequence message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, cseqMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, cseqMsg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
   }
 
   test("log disabled with CharSequence message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, cseqMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, cseqMsg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, objectMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, objectMsg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
   }
 
   test("log disabled with Object message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, objectMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, objectMsg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, msg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, msg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(cause))
   }
 
   test("log disabled with Message message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, msg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, msg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
     verify(f.manager).fetchValue()
   }
@@ -391,8 +391,8 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log disabled with String message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
   }
@@ -400,32 +400,32 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with CharSequence message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, cseqMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, cseqMsg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
   }
 
   test("log disabled with CharSequence message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, cseqMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, cseqMsg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, objectMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, objectMsg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
   }
 
   test("log disabled with Object message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, objectMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, objectMsg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
@@ -433,7 +433,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("traceEntry enabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry("foo", 17)
     verify(f.mockLogger).traceEntry(anyString(), any[Array[AnyRef]])
   }
@@ -441,14 +441,14 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("traceEntry disabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry("foo", 17)
     verify(f.mockLogger, never).traceEntry(anyString(), any[Array[AnyRef]])
   }
 
   test("traceEntry without params") {
     val f = fixture
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry()
     verify(f.mockLogger).traceEntry()
   }
@@ -456,7 +456,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   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)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry(msg)
     verify(f.mockLogger).traceEntry(eqv(msg))
   }
@@ -464,7 +464,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   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)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry(msg)
     verify(f.mockLogger, never).traceEntry(any[Message])
   }
@@ -472,7 +472,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   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)
+    val logger = Logger(f.mockLogger)
     logger.traceExit(msg, result)
     verify(f.mockLogger).traceExit(eqv(msg), eqv(result))
   }
@@ -480,7 +480,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   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)
+    val logger = 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/8abe19e0/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 79ae8de..c91d347 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
@@ -294,7 +294,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param marker  the marker data specific to this log statement
     * @param message the message to be logged
     */
-  def log(level: Level, marker: Marker, message: Message): Unit =
+  def apply(level: Level, marker: Marker, message: Message): Unit =
   macro LoggerMacro.logMarkerMsg
 
   /**
@@ -304,7 +304,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param marker  the marker data specific to this log statement
     * @param message the message to be logged
     */
-  def log(level: Level, marker: Marker, message: CharSequence): Unit =
+  def apply(level: Level, marker: Marker, message: CharSequence): Unit =
   macro LoggerMacro.logMarkerCseq
 
   /**
@@ -314,7 +314,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param marker  the marker data specific to this log statement
     * @param message the message to be logged
     */
-  def log(level: Level, marker: Marker, message: AnyRef): Unit =
+  def apply(level: Level, marker: Marker, message: AnyRef): Unit =
   macro LoggerMacro.logMarkerObject
 
   /**
@@ -326,7 +326,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   the cause
     */
-  def log(level: Level, marker: Marker, message: Message, cause: Throwable): Unit =
+  def apply(level: Level, marker: Marker, message: Message, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerMsgThrowable
 
   /**
@@ -338,7 +338,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   the cause
     */
-  def log(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit =
+  def apply(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerCseqThrowable
 
   /**
@@ -350,7 +350,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   the cause
     */
-  def log(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit =
+  def apply(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerObjectThrowable
 
   /**
@@ -359,7 +359,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param level   the logging level
     * @param message the message to be logged
     */
-  def log(level: Level, message: Message): Unit =
+  def apply(level: Level, message: Message): Unit =
   macro LoggerMacro.logMsg
 
   /**
@@ -368,7 +368,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param level   the logging level
     * @param message the message to be logged
     */
-  def log(level: Level, message: CharSequence): Unit =
+  def apply(level: Level, message: CharSequence): Unit =
   macro LoggerMacro.logCseq
 
   /**
@@ -377,7 +377,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param level   the logging level
     * @param message the message to be logged
     */
-  def log(level: Level, message: AnyRef): Unit =
+  def apply(level: Level, message: AnyRef): Unit =
   macro LoggerMacro.logObject
 
   /**
@@ -387,7 +387,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   a [[Throwable]]
     */
-  def log(level: Level, message: Message, cause: Throwable): Unit =
+  def apply(level: Level, message: Message, cause: Throwable): Unit =
   macro LoggerMacro.logMsgThrowable
 
   /**
@@ -397,7 +397,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   a [[Throwable]]
     */
-  def log(level: Level, message: CharSequence, cause: Throwable): Unit =
+  def apply(level: Level, message: CharSequence, cause: Throwable): Unit =
   macro LoggerMacro.logCseqThrowable
 
   /**
@@ -407,7 +407,7 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param message the message to be logged
     * @param cause   a [[Throwable]]
     */
-  def log(level: Level, message: AnyRef, cause: Throwable): Unit =
+  def apply(level: Level, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logObjectThrowable
 
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8abe19e0/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 3bd4b49..6595128 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
@@ -59,7 +59,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("fatal enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.FATAL)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.fatal(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.FATAL), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -68,7 +68,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("fatal disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.FATAL)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.fatal(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -77,7 +77,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("error enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.ERROR)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.error(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.ERROR), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -86,7 +86,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("error disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.ERROR)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.error(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -95,7 +95,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("warn enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.WARN)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.warn(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.WARN), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -104,7 +104,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("warn disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.WARN)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.warn(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -113,7 +113,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("info enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.info(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -122,7 +122,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("info disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.info(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -131,7 +131,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("debug enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.DEBUG)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.debug(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.DEBUG), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -140,7 +140,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("debug disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.DEBUG)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.debug(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -149,7 +149,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("trace enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.trace(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.TRACE), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
@@ -158,7 +158,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("trace disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.trace(s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
@@ -168,24 +168,24 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with Message message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, msg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, msg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(null))
   }
 
   test("log disabled with Message message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, msg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, msg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
     verify(f.manager).fetchValue()
   }
@@ -193,8 +193,8 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log disabled with String message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
   }
@@ -202,56 +202,56 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with CharSequence message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, cseqMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, cseqMsg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
   }
 
   test("log disabled with CharSequence message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, cseqMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, cseqMsg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, objectMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, objectMsg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(null))
   }
 
   test("log disabled with Object message and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, objectMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, objectMsg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, msg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, msg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), eqv(msg), eqv(cause))
   }
 
   test("log disabled with Message message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, msg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, msg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
     verify(f.manager).fetchValue()
   }
@@ -259,8 +259,8 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log disabled with String message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, s"string msg with value: ${f.manager.fetchValue()}", cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
   }
@@ -268,56 +268,56 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with CharSequence message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, cseqMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, cseqMsg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
   }
 
   test("log disabled with CharSequence message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, cseqMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, cseqMsg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, objectMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, objectMsg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(marker), any[Message], eqv(cause))
   }
 
   test("log disabled with Object message and cause and Marker") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO, marker)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, marker, objectMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, marker, objectMsg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, msg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, msg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(null))
   }
 
   test("log disabled with Message message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, msg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, msg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
     verify(f.manager).fetchValue()
   }
@@ -325,8 +325,8 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log disabled with String message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}")
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
   }
@@ -334,56 +334,56 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with CharSequence message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, cseqMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, cseqMsg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
   }
 
   test("log disabled with CharSequence message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, cseqMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, cseqMsg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, objectMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, objectMsg)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(null))
   }
 
   test("log disabled with Object message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, objectMsg)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, objectMsg)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Message message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, msg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, msg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), eqv(msg), eqv(cause))
   }
 
   test("log disabled with Message message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, msg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, msg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with String message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
     verify(f.manager).fetchValue()
   }
@@ -391,8 +391,8 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log disabled with String message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, s"string msg with value: ${f.manager.fetchValue()}", cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
     verify(f.manager, never).fetchValue()
   }
@@ -400,32 +400,32 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("log enabled with CharSequence message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, cseqMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, cseqMsg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
   }
 
   test("log disabled with CharSequence message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, cseqMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, cseqMsg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
   test("log enabled with Object message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, objectMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, objectMsg, cause)
     verify(f.mockLogger).logMessage(anyString(), eqv(Level.INFO), eqv(null), any[Message], eqv(cause))
   }
 
   test("log disabled with Object message and cause") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.INFO)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
-    logger.log(Level.INFO, objectMsg, cause)
+    val logger = Logger(f.mockLogger)
+    logger(Level.INFO, objectMsg, cause)
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
@@ -433,7 +433,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("traceEntry enabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry("foo", 17)
     verify(f.mockLogger).traceEntry(anyString(), any[Array[AnyRef]])
   }
@@ -441,14 +441,14 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   test("traceEntry disabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry("foo", 17)
     verify(f.mockLogger, never).traceEntry(anyString(), any[Array[AnyRef]])
   }
 
   test("traceEntry without params") {
     val f = fixture
-    val logger = new Logger(f.mockLogger)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry()
     verify(f.mockLogger).traceEntry()
   }
@@ -456,7 +456,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   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)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry(msg)
     verify(f.mockLogger).traceEntry(eqv(msg))
   }
@@ -464,7 +464,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   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)
+    val logger = Logger(f.mockLogger)
     logger.traceEntry(msg)
     verify(f.mockLogger, never).traceEntry(any[Message])
   }
@@ -472,7 +472,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   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)
+    val logger = Logger(f.mockLogger)
     logger.traceExit(msg, result)
     verify(f.mockLogger).traceExit(eqv(msg), eqv(result))
   }
@@ -480,7 +480,7 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   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)
+    val logger = Logger(f.mockLogger)
     logger.traceExit(msg, result)
     verify(f.mockLogger, never).traceExit(any[Message], any[AnyRef])
   }


[28/50] logging-log4j2 git commit: Fix typecast

Posted by mi...@apache.org.
Fix typecast


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2e8adc31
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2e8adc31
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2e8adc31

Branch: refs/heads/master
Commit: 2e8adc31c6df9975e29eb543c7c6973302038e40
Parents: 86089b3
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Jun 29 21:13:15 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Jun 29 21:13:15 2016 +0200

----------------------------------------------------------------------
 .../main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala  | 4 ++--
 .../main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2e8adc31/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 507242e..6ff8e53 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
@@ -350,7 +350,7 @@ private object LoggerMacro {
       List(
         reify(Level.TRACE).tree,
         reify(AbstractLogger.ENTRY_MARKER).tree,
-        reify(null.asInstanceOf[AnyRef]).tree,
+        reify(null: AnyRef).tree,
         reify(null).tree
       )
     )
@@ -365,7 +365,7 @@ private object LoggerMacro {
 
   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)) {
+      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

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2e8adc31/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 0f1bac5..5e9fa44 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
@@ -350,7 +350,7 @@ private object LoggerMacro {
       List(
         reify(Level.TRACE).tree,
         reify(AbstractLogger.ENTRY_MARKER).tree,
-        reify(null.asInstanceOf[AnyRef]).tree,
+        reify(null: AnyRef).tree,
         reify(null).tree
       )
     )
@@ -365,7 +365,7 @@ private object LoggerMacro {
 
   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)) {
+      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


[45/50] logging-log4j2 git commit: Use latest Scala 2.11 version

Posted by mi...@apache.org.
Use latest Scala 2.11 version


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b5a232a1
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b5a232a1
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b5a232a1

Branch: refs/heads/master
Commit: b5a232a119b4473f612983fb9b059775c1195f19
Parents: 2e5b259
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Aug 3 13:41:11 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Aug 3 13:41:11 2016 +0200

----------------------------------------------------------------------
 log4j-api-scala_2.11/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b5a232a1/log4j-api-scala_2.11/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-api-scala_2.11/pom.xml b/log4j-api-scala_2.11/pom.xml
index dd05844..d492f05 100644
--- a/log4j-api-scala_2.11/pom.xml
+++ b/log4j-api-scala_2.11/pom.xml
@@ -30,7 +30,7 @@
   <properties>
     <log4jParentDir>${basedir}/..</log4jParentDir>
     <projectDir>/scala_2.11</projectDir>
-    <scala.version>2.11.7</scala.version>
+    <scala.version>2.11.8</scala.version>
     <scala.maven.plugin.version>3.2.2</scala.maven.plugin.version>
   </properties>
   <dependencies>


[39/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/3250c19f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/3250c19f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/3250c19f

Branch: refs/heads/master
Commit: 3250c19fa6d137ee733e8b55afe54afa88a4afe6
Parents: 27c0f86 75390a9
Author: Mikael St�ldal <mi...@magine.com>
Authored: Fri Jul 8 15:45:29 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Fri Jul 8 15:45:29 2016 +0200

----------------------------------------------------------------------
 src/changes/changes.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[49/50] logging-log4j2 git commit: Merge remote-tracking branch 'origin/LOG4J-1181' into LOG4J-1181

Posted by mi...@apache.org.
Merge remote-tracking branch 'origin/LOG4J-1181' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/3c6fa163
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/3c6fa163
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/3c6fa163

Branch: refs/heads/master
Commit: 3c6fa163acb5598c7da44238a9154ed7f503f629
Parents: b3bc8e9 5c9a387
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sat Aug 27 11:46:55 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sat Aug 27 11:46:55 2016 +0200

----------------------------------------------------------------------
 log4j-api-scala_2.10/pom.xml                    |  2 +-
 .../org/apache/logging/log4j/scala/Logger.scala | 16 +++---
 .../apache/logging/log4j/scala/LoggerTest.scala | 52 +++-----------------
 log4j-api-scala_2.11/pom.xml                    |  4 +-
 .../org/apache/logging/log4j/scala/Logger.scala | 16 +++---
 .../apache/logging/log4j/scala/LoggerTest.scala | 52 +++-----------------
 log4j-samples/scala-api/pom.xml                 |  2 +-
 7 files changed, 30 insertions(+), 114 deletions(-)
----------------------------------------------------------------------



[40/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/02be6e1f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/02be6e1f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/02be6e1f

Branch: refs/heads/master
Commit: 02be6e1fdefad83647eac0d8cfeeca4487996823
Parents: 3250c19 6b2573a
Author: Mikael St�ldal <mi...@magine.com>
Authored: Mon Jul 25 13:55:48 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Mon Jul 25 13:55:48 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/LoggerTest.java    |    2 +-
 .../logging/log4j/core/LoggerContext.java       |   13 +-
 .../log4j/core/impl/ExtendedClassInfo.java      |   23 +-
 .../core/impl/ExtendedStackTraceElement.java    |   46 +-
 .../log4j/core/impl/ThrowableFormatOptions.java |  541 ++++---
 .../logging/log4j/core/impl/ThrowableProxy.java | 1390 +++++++++---------
 .../ExtendedThrowablePatternConverter.java      |    3 +-
 .../log4j/core/pattern/HtmlTextRenderer.java    |   38 +
 .../log4j/core/pattern/JAnsiTextRenderer.java   |  334 +++++
 .../core/pattern/MessagePatternConverter.java   |   62 +-
 .../log4j/core/pattern/PlainTextRenderer.java   |   40 +
 .../pattern/RootThrowablePatternConverter.java  |    2 +-
 .../log4j/core/pattern/TextRenderer.java        |   46 +
 .../apache/logging/log4j/core/util/Loader.java  |    5 +
 .../log4j/FormatterLoggerManualExample.java     |    7 +-
 .../apache/logging/log4j/LogRolloverTest.java   |   18 +-
 .../ConsoleAppenderAnsiMessagesMain.java        |  110 +-
 .../ConsoleAppenderAnsiStyleJira180Main.java    |  119 +-
 .../ConsoleAppenderAnsiStyleJira272Main.java    |  121 +-
 .../ConsoleAppenderAnsiStyleJira319Main.java    |  123 +-
 .../ConsoleAppenderAnsiStyleLayoutMain.java     |  149 +-
 .../ConsoleAppenderAnsiStyleNameLayoutMain.java |   11 +-
 ...nsoleAppenderDefaultSuppressedThrowable.java |  131 +-
 ...nsoleAppenderHighlightLayoutDefaultMain.java |   11 +-
 ...nsoleAppenderHighlightLayoutLogbackMain.java |   11 +-
 .../ConsoleAppenderHighlightLayoutMain.java     |   11 +-
 .../ConsoleAppenderJAnsiMessageMain.java        |  154 +-
 .../ConsoleAppenderJAnsiXExceptionMain.java     |   76 +
 .../ConsoleAppenderNoAnsiStyleLayoutMain.java   |  145 +-
 .../log4j/core/appender/Jira739Test.java        |  103 +-
 .../core/appender/ProgressConsoleTest.java      |    7 +-
 .../rolling/OnStartupTriggeringPolicyTest.java  |    2 -
 .../rolling/RollingAppenderCronTest.java        |    2 -
 .../log4j/core/config/ConfiguratorTest.java     |    5 +-
 .../log4j/core/config/TestConfigurator.java     |   24 +-
 .../core/config/TestConfiguratorError.java      |   13 +-
 .../builder/ConfigurationAssemblerTest.java     |    5 +-
 .../core/filter/DynamicThresholdFilterTest.java |   26 +-
 .../core/impl/ThrowableFormatOptionsTest.java   |  208 ++-
 .../lookup/MainInputArgumentsLookupTest.java    |   11 +-
 .../core/pattern/MessageJansiConverterTest.java |   62 +
 .../pattern/MessageStyledConverterTest.java     |   62 +
 .../src/test/resources/log4j-message-ansi.xml   |   34 +
 .../src/test/resources/log4j-message-styled.xml |   34 +
 .../test/resources/log4j2-console-msg-ansi.xml  |   31 +
 .../log4j2-console-xex-ansi-custom.xml          |   31 +
 .../resources/log4j2-console-xex-ansi-kirk.xml  |   31 +
 .../test/resources/log4j2-console-xex-ansi.xml  |   31 +
 src/changes/changes.xml                         |    8 +-
 src/site/xdoc/articles.xml                      |   46 +-
 src/site/xdoc/manual/layouts.xml.vm             |   95 +-
 51 files changed, 2941 insertions(+), 1672 deletions(-)
----------------------------------------------------------------------



[33/50] logging-log4j2 git commit: Fix sample

Posted by mi...@apache.org.
Fix sample


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/65995bb3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/65995bb3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/65995bb3

Branch: refs/heads/master
Commit: 65995bb3f2982a719c8e84424bb4bffaeed79f97
Parents: 193f4e3
Author: Mikael St�ldal <mi...@magine.com>
Authored: Thu Jun 30 18:28:09 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Thu Jun 30 18:28:09 2016 +0200

----------------------------------------------------------------------
 .../scala/org/apache/logging/log4j/scalasample/LoggingApp.scala    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/65995bb3/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
----------------------------------------------------------------------
diff --git a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
index 82c2acf..d47fb04 100644
--- a/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
+++ b/log4j-samples/scala-api/src/main/scala/org/apache/logging/log4j/scalasample/LoggingApp.scala
@@ -16,6 +16,6 @@ object LoggingApp extends App with Logging {
   logger.traceExit(s2)
   logger.traceExit(entryMessage)
   logger.traceExit(entryMessage, s2)
-  logger.traceExit(logger.messageFactory.newMessage("foobar": CharSequence), s2)
+  logger.traceExit(logger.messageFactory.newMessage("bonsai": CharSequence), s2)
 
 }
\ No newline at end of file


[31/50] logging-log4j2 git commit: Fix Scaladoc

Posted by mi...@apache.org.
Fix Scaladoc


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/373bf25d
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/373bf25d
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/373bf25d

Branch: refs/heads/master
Commit: 373bf25d19e1fc6d3482d4a51573265da8d3c9a2
Parents: c6c4948
Author: Mikael St�ldal <mi...@magine.com>
Authored: Thu Jun 30 10:43:06 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Thu Jun 30 10:43:06 2016 +0200

----------------------------------------------------------------------
 .../src/main/scala/org/apache/logging/log4j/scala/Logger.scala   | 4 ++--
 .../src/main/scala/org/apache/logging/log4j/scala/Logger.scala   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/373bf25d/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 2f78ba0..85efda4 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
@@ -413,7 +413,7 @@ class Logger private(val delegate: ExtendedLogger) {
 
 
   /**
-    * Checks whether this Logger is enabled for the the given `Level`.
+    * Checks whether this Logger is enabled for the given `Level`.
     *
     * Note that passing in `Level.OFF` always returns `true`.
     *
@@ -423,7 +423,7 @@ class Logger private(val delegate: ExtendedLogger) {
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
 
   /**
-    * Checks whether this Logger is enabled for the the given `Level` and `Marker`.
+    * Checks whether this Logger is enabled for the given `Level` and `Marker`.
     *
     * @param level  the Level to check
     * @param marker the Marker to check

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/373bf25d/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 2f78ba0..85efda4 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
@@ -413,7 +413,7 @@ class Logger private(val delegate: ExtendedLogger) {
 
 
   /**
-    * Checks whether this Logger is enabled for the the given `Level`.
+    * Checks whether this Logger is enabled for the given `Level`.
     *
     * Note that passing in `Level.OFF` always returns `true`.
     *
@@ -423,7 +423,7 @@ class Logger private(val delegate: ExtendedLogger) {
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
 
   /**
-    * Checks whether this Logger is enabled for the the given `Level` and `Marker`.
+    * Checks whether this Logger is enabled for the given `Level` and `Marker`.
     *
     * @param level  the Level to check
     * @param marker the Marker to check


[03/50] logging-log4j2 git commit: Macro for traceEntry(Any*)

Posted by mi...@apache.org.
Macro for traceEntry(Any*)


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/9f3a7d6f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/9f3a7d6f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/9f3a7d6f

Branch: refs/heads/master
Commit: 9f3a7d6ffaca7b7ddfd13c31b78c3a5a7a723e81
Parents: ed201df
Author: Mikael St�ldal <mi...@magine.com>
Authored: Sat Jun 18 23:31:54 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Sat Jun 18 23:31:54 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala | 51 +++++++++++---------
 .../logging/log4j/scala/LoggerMacro.scala       | 24 ++++++++-
 .../apache/logging/log4j/scala/LoggerTest.scala | 32 +++++++++++-
 .../org/apache/logging/log4j/scala/Logger.scala | 51 +++++++++++---------
 .../logging/log4j/scala/LoggerMacro.scala       | 26 ++++++++--
 .../apache/logging/log4j/scala/LoggerTest.scala | 32 +++++++++++-
 6 files changed, 163 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9f3a7d6f/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 9a25f1f..ba15f8f 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
@@ -26,7 +26,7 @@ class Logger(val delegate: ExtendedLogger) {
 
   private final val FQCN = classOf[Logger].getName
 
-  
+
   def fatal(marker: Marker, message: Message): Unit =
   macro LoggerMacro.fatalMarkerMsg
 
@@ -50,10 +50,10 @@ class Logger(val delegate: ExtendedLogger) {
 
   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
 
@@ -247,8 +247,8 @@ class Logger(val delegate: ExtendedLogger) {
 
   def trace(message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.traceObjectThrowable
-  
-  
+
+
   def log(level: Level, marker: Marker, message: Message): Unit =
   macro LoggerMacro.logMarkerMsg
 
@@ -263,10 +263,10 @@ class Logger(val delegate: ExtendedLogger) {
 
   def log(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerCseqThrowable
-  
+
   def log(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerObjectThrowable
-  
+
   def log(level: Level, message: Message): Unit =
   macro LoggerMacro.logMsg
 
@@ -275,7 +275,7 @@ class Logger(val delegate: ExtendedLogger) {
 
   def log(level: Level, message: AnyRef): Unit =
   macro LoggerMacro.logObject
-  
+
   def log(level: Level, message: Message, cause: Throwable): Unit =
   macro LoggerMacro.logMsgThrowable
 
@@ -284,7 +284,7 @@ class Logger(val delegate: ExtendedLogger) {
 
   def log(level: Level, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logObjectThrowable
-  
+
 
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
 
@@ -293,8 +293,8 @@ class Logger(val delegate: ExtendedLogger) {
 
   def traceEntry(): EntryMessage = delegate.traceEntry()
 
-  def traceEntry(params: AnyRef*): EntryMessage =
-    delegate.traceEntry(null, params) // TODO would be useful to have this as a macro to avoid varargs array creation
+  def traceEntry(params: Any*): EntryMessage =
+  macro LoggerMacro.traceEntryParams
 
   def traceEntry(message: Message): EntryMessage = delegate.traceEntry(message)
 
@@ -319,13 +319,14 @@ class Logger(val delegate: ExtendedLogger) {
 
   def messageFactory: MessageFactory2 = delegate.getMessageFactory.asInstanceOf[MessageFactory2]
 
+
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
     *
-    * @param level    log level
-    * @param marker   marker or `null`
-    * @param message  message
-    * @param cause    cause or `null`
+    * @param level   log level
+    * @param marker  marker or `null`
+    * @param message message
+    * @param cause   cause or `null`
     */
   private[scala] def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, message, cause)
@@ -334,10 +335,10 @@ class Logger(val delegate: ExtendedLogger) {
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
     *
-    * @param level    log level
-    * @param marker   marker or `null`
-    * @param message  message
-    * @param cause    cause or `null`
+    * @param level   log level
+    * @param marker  marker or `null`
+    * @param message message
+    * @param cause   cause or `null`
     */
   private[scala] def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
@@ -346,13 +347,17 @@ class Logger(val delegate: ExtendedLogger) {
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
     *
-    * @param level    log level
-    * @param marker   marker or `null`
-    * @param message  message
-    * @param cause    cause or `null`
+    * @param level   log level
+    * @param marker  marker or `null`
+    * @param message message
+    * @param cause   cause or `null`
     */
   private[scala] def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
+  private[scala] def traceEntryWithParams(params: Any*): EntryMessage = {
+    delegate.traceEntry(null, params)
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9f3a7d6f/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 756975e..a1ebee7 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
@@ -16,7 +16,8 @@
  */
 package org.apache.logging.log4j.scala
 
-import org.apache.logging.log4j.message.Message
+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
@@ -332,5 +333,24 @@ private object LoggerMacro {
         c.prefix.splice.logMessage(level.splice, null, message.splice, cause.splice)
       }
     )
-  
+
+  def traceEntryParams(c: LoggerContext)(params: c.Expr[Any]*): 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.asInstanceOf[AnyRef]).tree,
+        reify(null).tree
+      )
+    )
+
+    val log = Apply(
+      Select(c.prefix.tree, newTermName("traceEntryWithParams")),
+      (params map (_.tree)).toList
+    )
+    c.Expr[EntryMessage](If(isEnabled, log, reify(null).tree))
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9f3a7d6f/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 1c3a126..359281e 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
@@ -17,7 +17,7 @@
 package org.apache.logging.log4j.scala
 
 import org.apache.logging.log4j.message.{Message, ParameterizedMessage, ParameterizedMessageFactory}
-import org.apache.logging.log4j.spi.ExtendedLogger
+import org.apache.logging.log4j.spi.{AbstractLogger, ExtendedLogger}
 import org.apache.logging.log4j.{Level, Marker, MarkerManager}
 import org.junit.runner.RunWith
 import org.mockito.Matchers.{any, anyString, eq => eqv}
@@ -428,4 +428,34 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
+
+  test("traceEntry enabled with params") {
+    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("foo", 17)
+    verify(f.mockLogger).traceEntry(anyString(), any[Array[AnyRef]])
+  }
+
+  test("traceEntry disabled with params") {
+    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("foo", 17)
+    verify(f.mockLogger, never).traceEntry(anyString(), any[Array[AnyRef]])
+  }
+
+  test("traceEntry without params") {
+    val f = fixture
+    val logger = new Logger(f.mockLogger)
+    logger.traceEntry()
+    verify(f.mockLogger).traceEntry()
+  }
+
+  test("traceEntry with message") {
+    val f = fixture
+    val logger = new Logger(f.mockLogger)
+    logger.traceEntry(msg)
+    verify(f.mockLogger).traceEntry(eqv(msg))
+  }
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9f3a7d6f/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 9a25f1f..ba15f8f 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
@@ -26,7 +26,7 @@ class Logger(val delegate: ExtendedLogger) {
 
   private final val FQCN = classOf[Logger].getName
 
-  
+
   def fatal(marker: Marker, message: Message): Unit =
   macro LoggerMacro.fatalMarkerMsg
 
@@ -50,10 +50,10 @@ class Logger(val delegate: ExtendedLogger) {
 
   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
 
@@ -247,8 +247,8 @@ class Logger(val delegate: ExtendedLogger) {
 
   def trace(message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.traceObjectThrowable
-  
-  
+
+
   def log(level: Level, marker: Marker, message: Message): Unit =
   macro LoggerMacro.logMarkerMsg
 
@@ -263,10 +263,10 @@ class Logger(val delegate: ExtendedLogger) {
 
   def log(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerCseqThrowable
-  
+
   def log(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logMarkerObjectThrowable
-  
+
   def log(level: Level, message: Message): Unit =
   macro LoggerMacro.logMsg
 
@@ -275,7 +275,7 @@ class Logger(val delegate: ExtendedLogger) {
 
   def log(level: Level, message: AnyRef): Unit =
   macro LoggerMacro.logObject
-  
+
   def log(level: Level, message: Message, cause: Throwable): Unit =
   macro LoggerMacro.logMsgThrowable
 
@@ -284,7 +284,7 @@ class Logger(val delegate: ExtendedLogger) {
 
   def log(level: Level, message: AnyRef, cause: Throwable): Unit =
   macro LoggerMacro.logObjectThrowable
-  
+
 
   def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
 
@@ -293,8 +293,8 @@ class Logger(val delegate: ExtendedLogger) {
 
   def traceEntry(): EntryMessage = delegate.traceEntry()
 
-  def traceEntry(params: AnyRef*): EntryMessage =
-    delegate.traceEntry(null, params) // TODO would be useful to have this as a macro to avoid varargs array creation
+  def traceEntry(params: Any*): EntryMessage =
+  macro LoggerMacro.traceEntryParams
 
   def traceEntry(message: Message): EntryMessage = delegate.traceEntry(message)
 
@@ -319,13 +319,14 @@ class Logger(val delegate: ExtendedLogger) {
 
   def messageFactory: MessageFactory2 = delegate.getMessageFactory.asInstanceOf[MessageFactory2]
 
+
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
     *
-    * @param level    log level
-    * @param marker   marker or `null`
-    * @param message  message
-    * @param cause    cause or `null`
+    * @param level   log level
+    * @param marker  marker or `null`
+    * @param message message
+    * @param cause   cause or `null`
     */
   private[scala] def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, message, cause)
@@ -334,10 +335,10 @@ class Logger(val delegate: ExtendedLogger) {
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
     *
-    * @param level    log level
-    * @param marker   marker or `null`
-    * @param message  message
-    * @param cause    cause or `null`
+    * @param level   log level
+    * @param marker  marker or `null`
+    * @param message message
+    * @param cause   cause or `null`
     */
   private[scala] def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
@@ -346,13 +347,17 @@ class Logger(val delegate: ExtendedLogger) {
   /** Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified
     * level is enabled.
     *
-    * @param level    log level
-    * @param marker   marker or `null`
-    * @param message  message
-    * @param cause    cause or `null`
+    * @param level   log level
+    * @param marker  marker or `null`
+    * @param message message
+    * @param cause   cause or `null`
     */
   private[scala] def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
+  private[scala] def traceEntryWithParams(params: Any*): EntryMessage = {
+    delegate.traceEntry(null, params)
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9f3a7d6f/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 808a08f..2105ad9 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
@@ -16,7 +16,8 @@
  */
 package org.apache.logging.log4j.scala
 
-import org.apache.logging.log4j.message.Message
+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
@@ -26,7 +27,7 @@ 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)
 
@@ -332,5 +333,24 @@ private object LoggerMacro {
         c.prefix.splice.logMessage(level.splice, null, message.splice, cause.splice)
       }
     )
-  
+
+  def traceEntryParams(c: LoggerContext)(params: c.Expr[Any]*): 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.asInstanceOf[AnyRef]).tree,
+        reify(null).tree
+      )
+    )
+
+    val log = Apply(
+      Select(c.prefix.tree, newTermName("traceEntryWithParams")),
+      (params map (_.tree)).toList
+    )
+    c.Expr[EntryMessage](If(isEnabled, log, reify(null).tree))
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9f3a7d6f/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 1c3a126..359281e 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
@@ -17,7 +17,7 @@
 package org.apache.logging.log4j.scala
 
 import org.apache.logging.log4j.message.{Message, ParameterizedMessage, ParameterizedMessageFactory}
-import org.apache.logging.log4j.spi.ExtendedLogger
+import org.apache.logging.log4j.spi.{AbstractLogger, ExtendedLogger}
 import org.apache.logging.log4j.{Level, Marker, MarkerManager}
 import org.junit.runner.RunWith
 import org.mockito.Matchers.{any, anyString, eq => eqv}
@@ -428,4 +428,34 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).logMessage(anyString(), any[Level], any[Marker], any[Message], any[Throwable])
   }
 
+
+  test("traceEntry enabled with params") {
+    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("foo", 17)
+    verify(f.mockLogger).traceEntry(anyString(), any[Array[AnyRef]])
+  }
+
+  test("traceEntry disabled with params") {
+    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("foo", 17)
+    verify(f.mockLogger, never).traceEntry(anyString(), any[Array[AnyRef]])
+  }
+
+  test("traceEntry without params") {
+    val f = fixture
+    val logger = new Logger(f.mockLogger)
+    logger.traceEntry()
+    verify(f.mockLogger).traceEntry()
+  }
+
+  test("traceEntry with message") {
+    val f = fixture
+    val logger = new Logger(f.mockLogger)
+    logger.traceEntry(msg)
+    verify(f.mockLogger).traceEntry(eqv(msg))
+  }
 }


[24/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/cbe0e5d3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/cbe0e5d3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/cbe0e5d3

Branch: refs/heads/master
Commit: cbe0e5d34c0b2d2288a71315b05ff6c14dbcb4c4
Parents: e45e82f a315824
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Jun 29 11:00:48 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Jun 29 11:00:48 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/logging/log4j/Logger.java   |  25 ++-
 .../core/filter/DynamicThresholdFilter.java     |   2 +-
 .../core/pattern/MessagePatternConverter.java   |   2 +-
 .../log4j/core/appender/FileAppenderTest.java   |   6 +-
 .../rolling/OnStartupTriggeringPolicyTest.java  |  28 ++--
 .../RandomRollingAppenderOnStartupTest.java     |  17 +-
 .../rolling/RollingAppenderCronTest.java        |  57 +++----
 .../RollingAppenderCustomDeleteActionTest.java  |  28 +---
 ...lingAppenderDeleteAccumulatedCount1Test.java |  29 +---
 ...lingAppenderDeleteAccumulatedCount2Test.java |  29 +---
 ...ollingAppenderDeleteAccumulatedSizeTest.java |  28 +---
 .../RollingAppenderDeleteMaxDepthTest.java      |  28 +---
 .../RollingAppenderDeleteNestedTest.java        |  29 +---
 .../RollingAppenderDeleteScriptFri13thTest.java |  29 +---
 .../RollingAppenderDeleteScriptTest.java        |  27 +---
 ...ollingAppenderNoUnconditionalDeleteTest.java |   6 +-
 .../rolling/RollingAppenderOnStartupTest.java   |  15 +-
 .../rolling/RollingAppenderSizeTest.java        |  36 +----
 .../rolling/RollingAppenderTimeAndSizeTest.java |  29 +---
 .../rolling/RollingAppenderTimeTest.java        |  36 ++---
 .../RollingAppenderUncompressedTest.java        |  28 ++--
 ...RandomAccessFileManagerHeaderFooterTest.java |  29 +---
 .../RollingRandomAccessFileManagerTest.java     | 155 +++++++++----------
 .../routing/JsonRoutingAppender2Test.java       |  16 +-
 .../routing/JsonRoutingAppenderTest.java        |  16 +-
 .../routing/PropertiesRoutingAppenderTest.java  |  23 ++-
 .../appender/routing/RoutingAppenderTest.java   |  11 +-
 .../routing/RoutingAppenderWithJndiTest.java    |   6 +-
 .../routing/RoutingAppenderWithPurgingTest.java |  21 +--
 .../routing/RoutingDefaultAppenderTest.java     |  16 +-
 .../junit/AbstractExternalFileCleaner.java      |  81 ++++++++++
 .../apache/logging/log4j/junit/CleanFiles.java  |  56 +++----
 .../logging/log4j/junit/CleanFolders.java       |  90 ++++++-----
 .../logging/log4j/junit/LoggerContextRule.java  |  93 +++++++----
 34 files changed, 495 insertions(+), 632 deletions(-)
----------------------------------------------------------------------



[22/50] logging-log4j2 git commit: Fix macro access

Posted by mi...@apache.org.
Fix macro access


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/cda39288
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/cda39288
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/cda39288

Branch: refs/heads/master
Commit: cda392882186f8b3da9d1e4df339b10ffbeb57c9
Parents: 45306d8
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 28 13:54:38 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jun 28 13:54:38 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala | 21 ++++++++++++++------
 .../org/apache/logging/log4j/scala/Logger.scala | 21 ++++++++++++++------
 2 files changed, 30 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cda39288/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 e57c86c..c662ef1 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
@@ -580,48 +580,57 @@ class Logger private(val delegate: ExtendedLogger) {
   /** 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`
     */
-  private[scala] def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
+  def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
     delegate.logMessage(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`
     */
-  private[scala] def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
+  def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.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`
     */
-  private[scala] def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
+  def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
-  private[scala] def traceEntryParams(params: Any*): EntryMessage = {
+  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
+  def traceEntryParams(params: Any*): EntryMessage = {
     delegate.traceEntry(null, params) // TODO should not do ifEnabled check
   }
 
-  private[scala] def traceEntryMessage(message: Message): EntryMessage = {
+  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
+  def traceEntryMessage(message: Message): EntryMessage = {
     delegate.traceEntry(message) // TODO should not do ifEnabled check
   }
 
-  private[scala] def traceExitMessageResult[R](message: Message, result: R): Unit = {
+  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
+  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/cda39288/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 e57c86c..c662ef1 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
@@ -580,48 +580,57 @@ class Logger private(val delegate: ExtendedLogger) {
   /** 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`
     */
-  private[scala] def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
+  def logMessage(level: Level, marker: Marker, message: Message, cause: Throwable): Unit = {
     delegate.logMessage(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`
     */
-  private[scala] def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
+  def logMessage(level: Level, marker: Marker, message: CharSequence, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.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`
     */
-  private[scala] def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
+  def logMessage(level: Level, marker: Marker, message: AnyRef, cause: Throwable): Unit = {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
-  private[scala] def traceEntryParams(params: Any*): EntryMessage = {
+  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
+  def traceEntryParams(params: Any*): EntryMessage = {
     delegate.traceEntry(null, params) // TODO should not do ifEnabled check
   }
 
-  private[scala] def traceEntryMessage(message: Message): EntryMessage = {
+  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
+  def traceEntryMessage(message: Message): EntryMessage = {
     delegate.traceEntry(message) // TODO should not do ifEnabled check
   }
 
-  private[scala] def traceExitMessageResult[R](message: Message, result: R): Unit = {
+  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
+  def traceExitMessageResult[R](message: Message, result: R): Unit = {
     delegate.traceExit(message, result) // TODO should not do ifEnabled check
   }
 


[26/50] logging-log4j2 git commit: Fix flow logging macros

Posted by mi...@apache.org.
Fix flow logging 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/0ab01565
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/0ab01565
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/0ab01565

Branch: refs/heads/master
Commit: 0ab01565a91eb24e8150d3c41c87746a80bf7cd7
Parents: bce8794
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Jun 29 20:25:13 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Jun 29 20:27:32 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/scala/Logger.scala | 36 +++-----
 .../logging/log4j/scala/LoggerMacro.scala       | 29 ++++++-
 .../apache/logging/log4j/scala/LoggerTest.scala | 90 ++++++++++++++++++--
 .../org/apache/logging/log4j/scala/Logger.scala | 31 +++----
 .../logging/log4j/scala/LoggerMacro.scala       | 29 ++++++-
 .../apache/logging/log4j/scala/LoggerTest.scala | 90 ++++++++++++++++++--
 6 files changed, 245 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0ab01565/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 8fe926c..5fa2cb7 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
@@ -60,7 +60,8 @@ object Logger {
   * 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) { // TODO extends AnyVal ?
+class Logger private(val delegate: ExtendedLogger) {
+  // TODO extends AnyVal ?
 
   private final val FQCN = classOf[Logger].getName
 
@@ -431,15 +432,14 @@ class Logger private(val delegate: ExtendedLogger) { // TODO extends AnyVal ?
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
 
-  // TODO fix FQCN for flow logging
-
   /**
     * 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 = delegate.traceEntry()
+  def traceEntry(): EntryMessage =
+  macro LoggerMacro.traceEntry
 
   /**
     * Logs entry to a method along with its parameters.
@@ -476,7 +476,8 @@ class Logger private(val delegate: ExtendedLogger) { // TODO extends AnyVal ?
   /**
     * Logs exit from a method with no result.
     */
-  def traceExit(): Unit = delegate.traceExit()
+  def traceExit(): Unit =
+  macro LoggerMacro.traceExit
 
   /**
     * Logs exiting from a method with result.
@@ -484,14 +485,16 @@ class Logger private(val delegate: ExtendedLogger) { // TODO extends AnyVal ?
     * @param result The result being returned from the method call
     * @return `result`
     */
-  def traceExit[R](result: R): R = delegate.traceExit(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 = delegate.traceExit(entryMessage)
+  def traceExit(entryMessage: EntryMessage): Unit =
+  macro LoggerMacro.traceExitEntryMessage
 
   /**
     * Logs exiting from a method with result.
@@ -508,7 +511,8 @@ class Logger private(val delegate: ExtendedLogger) { // TODO extends AnyVal ?
     * @param result       The result being returned from the method call
     * @return `result`
     */
-  def traceExit[R](entryMessage: EntryMessage, result: R): R = delegate.traceExit(entryMessage, 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.
@@ -619,22 +623,10 @@ class Logger private(val delegate: ExtendedLogger) { // TODO extends AnyVal ?
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
-
-  // TODO inline those to get FQCN correct? make macro of other trace methods as well
-
+  // TODO inline this to get FQCN correct
   /** Should normally not be used directly from application code, but needs to be public for access by macros. */
   def traceEntryParams(params: Any*): EntryMessage = {
-    delegate.traceEntry(null, params) // TODO should not do ifEnabled check
-  }
-
-  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
-  def traceEntryMessage(message: Message): EntryMessage = {
-    delegate.traceEntry(message) // TODO should not do ifEnabled check
-  }
-
-  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
-  def traceExitMessageResult[R](message: Message, result: R): Unit = {
-    delegate.traceExit(message, result) // TODO should not do ifEnabled check
+    delegate.traceEntry(null: String, params) // TODO should not do ifEnabled check
   }
 
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0ab01565/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 c915ffb..513dd90 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
@@ -338,6 +338,11 @@ private object LoggerMacro {
     )
 
 
+  def traceEntry(c: LoggerContext)(): c.Expr[EntryMessage] =
+    c.universe.reify(
+      c.prefix.splice.delegate.traceEntry()
+    )
+
   def traceEntryParams(c: LoggerContext)(params: c.Expr[Any]*): c.Expr[EntryMessage] = {
     import c.universe._
     val isEnabled = Apply(
@@ -361,17 +366,37 @@ private object LoggerMacro {
   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)
+        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.traceExitMessageResult(message.splice, result.splice)
+          c.prefix.splice.delegate.traceExit(message.splice, result.splice)  // TODO should not do ifEnabled check
         }
         result.splice
       }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0ab01565/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 6595128..d9237a5 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
@@ -16,7 +16,7 @@
  */
 package org.apache.logging.log4j.scala
 
-import org.apache.logging.log4j.message.{Message, ParameterizedMessage, ParameterizedMessageFactory}
+import org.apache.logging.log4j.message.{DefaultFlowMessageFactory, EntryMessage, Message, ParameterizedMessage, ParameterizedMessageFactory}
 import org.apache.logging.log4j.spi.{AbstractLogger, ExtendedLogger}
 import org.apache.logging.log4j.{Level, Marker, MarkerManager}
 import org.junit.runner.RunWith
@@ -36,6 +36,7 @@ trait Manager {
 class LoggerTest extends FunSuite with Matchers with MockitoSugar {
 
   val msg = new ParameterizedMessage("msg {}", 17)
+  val entryMsg = new DefaultFlowMessageFactory().newEntryMessage(msg)
   val cseqMsg: CharSequence = new StringBuilder().append("cseq msg")
   val objectMsg = Custom(17)
   val cause = new RuntimeException("cause")
@@ -430,6 +431,22 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   }
 
 
+  test("traceEntry enabled") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceEntry()
+    verify(f.mockLogger).traceEntry()
+  }
+
+  ignore("traceEntry disabled") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceEntry()
+    verify(f.mockLogger, never).traceEntry()
+  }
+
   test("traceEntry enabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
@@ -446,13 +463,6 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).traceEntry(anyString(), any[Array[AnyRef]])
   }
 
-  test("traceEntry without params") {
-    val f = fixture
-    val logger = Logger(f.mockLogger)
-    logger.traceEntry()
-    verify(f.mockLogger).traceEntry()
-  }
-
   test("traceEntry enabled with message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
@@ -469,6 +479,70 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).traceEntry(any[Message])
   }
 
+  test("traceExit enabled") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit()
+    verify(f.mockLogger).traceExit()
+  }
+
+  ignore("traceExit disabled") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit()
+    verify(f.mockLogger, never).traceExit()
+  }
+
+  test("traceExit enabled with result") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(result)
+    verify(f.mockLogger).traceExit(result)
+  }
+
+  ignore("traceExit disabled with result") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(result)
+    verify(f.mockLogger, never).traceExit(anyString())
+  }
+
+  test("traceExit enabled with entrymessage") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(entryMsg)
+    verify(f.mockLogger).traceExit(entryMsg)
+  }
+
+  ignore("traceExit disabled with entrymessage") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(entryMsg)
+    verify(f.mockLogger, never).traceExit(any[EntryMessage])
+  }
+
+  test("traceExit enabled with entrymessage and result") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(entryMsg, result)
+    verify(f.mockLogger).traceExit(entryMsg, result)
+  }
+
+  ignore("traceExit disabled with entrymessage and result") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(entryMsg, result)
+    verify(f.mockLogger, never).traceExit(any[EntryMessage], anyString())
+  }
+
   test("traceExit enabled with message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0ab01565/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 f58b8df..5fa2cb7 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
@@ -61,6 +61,7 @@ object Logger {
   * will only occur when debug logging is enabled.
   */
 class Logger private(val delegate: ExtendedLogger) {
+  // TODO extends AnyVal ?
 
   private final val FQCN = classOf[Logger].getName
 
@@ -431,15 +432,14 @@ class Logger private(val delegate: ExtendedLogger) {
   def isEnabled(level: Level, marker: Marker): Boolean = delegate.isEnabled(level, marker)
 
 
-  // TODO fix FQCN for flow logging - Break out flow logging logic from AbstractLogger into somethimg accessible from Scala API ?
-
   /**
     * 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 = delegate.traceEntry()
+  def traceEntry(): EntryMessage =
+  macro LoggerMacro.traceEntry
 
   /**
     * Logs entry to a method along with its parameters.
@@ -476,7 +476,8 @@ class Logger private(val delegate: ExtendedLogger) {
   /**
     * Logs exit from a method with no result.
     */
-  def traceExit(): Unit = delegate.traceExit()
+  def traceExit(): Unit =
+  macro LoggerMacro.traceExit
 
   /**
     * Logs exiting from a method with result.
@@ -484,14 +485,16 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param result The result being returned from the method call
     * @return `result`
     */
-  def traceExit[R](result: R): R = delegate.traceExit(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 = delegate.traceExit(entryMessage)
+  def traceExit(entryMessage: EntryMessage): Unit =
+  macro LoggerMacro.traceExitEntryMessage
 
   /**
     * Logs exiting from a method with result.
@@ -508,7 +511,8 @@ class Logger private(val delegate: ExtendedLogger) {
     * @param result       The result being returned from the method call
     * @return `result`
     */
-  def traceExit[R](entryMessage: EntryMessage, result: R): R = delegate.traceExit(entryMessage, 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.
@@ -619,19 +623,10 @@ class Logger private(val delegate: ExtendedLogger) {
     delegate.logMessage(FQCN, level, marker, messageFactory.newMessage(message), cause)
   }
 
+  // TODO inline this to get FQCN correct
   /** Should normally not be used directly from application code, but needs to be public for access by macros. */
   def traceEntryParams(params: Any*): EntryMessage = {
-    delegate.traceEntry(null, params) // TODO should not do ifEnabled check
-  }
-
-  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
-  def traceEntryMessage(message: Message): EntryMessage = {
-    delegate.traceEntry(message) // TODO should not do ifEnabled check
-  }
-
-  /** Should normally not be used directly from application code, but needs to be public for access by macros. */
-  def traceExitMessageResult[R](message: Message, result: R): Unit = {
-    delegate.traceExit(message, result) // TODO should not do ifEnabled check
+    delegate.traceEntry(null: String, params) // TODO should not do ifEnabled check
   }
 
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0ab01565/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 440857f..77a0a0c 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
@@ -338,6 +338,11 @@ private object LoggerMacro {
     )
 
 
+  def traceEntry(c: LoggerContext)(): c.Expr[EntryMessage] =
+    c.universe.reify(
+      c.prefix.splice.delegate.traceEntry()
+    )
+
   def traceEntryParams(c: LoggerContext)(params: c.Expr[Any]*): c.Expr[EntryMessage] = {
     import c.universe._
     val isEnabled = Apply(
@@ -361,17 +366,37 @@ private object LoggerMacro {
   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)
+        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.traceExitMessageResult(message.splice, result.splice)
+          c.prefix.splice.delegate.traceExit(message.splice, result.splice)  // TODO should not do ifEnabled check
         }
         result.splice
       }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0ab01565/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 6595128..d9237a5 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
@@ -16,7 +16,7 @@
  */
 package org.apache.logging.log4j.scala
 
-import org.apache.logging.log4j.message.{Message, ParameterizedMessage, ParameterizedMessageFactory}
+import org.apache.logging.log4j.message.{DefaultFlowMessageFactory, EntryMessage, Message, ParameterizedMessage, ParameterizedMessageFactory}
 import org.apache.logging.log4j.spi.{AbstractLogger, ExtendedLogger}
 import org.apache.logging.log4j.{Level, Marker, MarkerManager}
 import org.junit.runner.RunWith
@@ -36,6 +36,7 @@ trait Manager {
 class LoggerTest extends FunSuite with Matchers with MockitoSugar {
 
   val msg = new ParameterizedMessage("msg {}", 17)
+  val entryMsg = new DefaultFlowMessageFactory().newEntryMessage(msg)
   val cseqMsg: CharSequence = new StringBuilder().append("cseq msg")
   val objectMsg = Custom(17)
   val cause = new RuntimeException("cause")
@@ -430,6 +431,22 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
   }
 
 
+  test("traceEntry enabled") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceEntry()
+    verify(f.mockLogger).traceEntry()
+  }
+
+  ignore("traceEntry disabled") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceEntry()
+    verify(f.mockLogger, never).traceEntry()
+  }
+
   test("traceEntry enabled with params") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
@@ -446,13 +463,6 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).traceEntry(anyString(), any[Array[AnyRef]])
   }
 
-  test("traceEntry without params") {
-    val f = fixture
-    val logger = Logger(f.mockLogger)
-    logger.traceEntry()
-    verify(f.mockLogger).traceEntry()
-  }
-
   test("traceEntry enabled with message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null.asInstanceOf[AnyRef], null)).thenReturn(true)
@@ -469,6 +479,70 @@ class LoggerTest extends FunSuite with Matchers with MockitoSugar {
     verify(f.mockLogger, never).traceEntry(any[Message])
   }
 
+  test("traceExit enabled") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit()
+    verify(f.mockLogger).traceExit()
+  }
+
+  ignore("traceExit disabled") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit()
+    verify(f.mockLogger, never).traceExit()
+  }
+
+  test("traceExit enabled with result") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(result)
+    verify(f.mockLogger).traceExit(result)
+  }
+
+  ignore("traceExit disabled with result") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(result)
+    verify(f.mockLogger, never).traceExit(anyString())
+  }
+
+  test("traceExit enabled with entrymessage") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(entryMsg)
+    verify(f.mockLogger).traceExit(entryMsg)
+  }
+
+  ignore("traceExit disabled with entrymessage") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(entryMsg)
+    verify(f.mockLogger, never).traceExit(any[EntryMessage])
+  }
+
+  test("traceExit enabled with entrymessage and result") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(entryMsg, result)
+    verify(f.mockLogger).traceExit(entryMsg, result)
+  }
+
+  ignore("traceExit disabled with entrymessage and result") {
+    val f = fixture
+    when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(false)
+    val logger = Logger(f.mockLogger)
+    logger.traceExit(entryMsg, result)
+    verify(f.mockLogger, never).traceExit(any[EntryMessage], anyString())
+  }
+
   test("traceExit enabled with message") {
     val f = fixture
     when(f.mockLogger.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, msg, null)).thenReturn(true)


[09/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/6ddad08f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/6ddad08f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/6ddad08f

Branch: refs/heads/master
Commit: 6ddad08f10b2054c8883cad01cae7b4bfcde2895
Parents: 75277a4 0e0041e
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sun Jun 26 16:53:34 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sun Jun 26 16:53:34 2016 +0200

----------------------------------------------------------------------
 .../logging/log4j/CloseableThreadContext.java   |    2 +-
 .../logging/log4j/message/MessageFactory2.java  |  110 +-
 log4j-core/pom.xml                              |    3 +
 .../core/appender/OutputStreamManager.java      |    8 +-
 .../rolling/OnStartupTriggeringPolicy.java      |   51 +-
 .../appender/rolling/RollingFileManager.java    |    7 +-
 .../log4j/core/filter/AbstractFilterable.java   |    8 +-
 .../log4j/core/layout/AbstractStringLayout.java |   12 +-
 .../logging/log4j/core/layout/GelfLayout.java   |   11 +-
 .../core/util/CloseShieldOutputStream.java      |    3 +
 .../rolling/OnStartupTriggeringPolicyTest.java  |   30 +-
 .../rolling/RollingAppenderSizeTest.java        |   42 +-
 .../rolling/RollingFileAppenderAccessTest.java  |    4 +-
 .../SequenceNumberPatternConverterTest.java     |   51 +
 .../apache/logging/log4j/junit/CleanFiles.java  |    2 +-
 .../logging/log4j/junit/CleanFolders.java       |   81 +
 .../SequenceNumberPatternConverterTest.yml      |   15 +
 .../src/test/resources/log4j-rolling-7z.xml     |   58 +
 pom.xml                                         |    6 +-
 src/changes/announcement.vm                     |   20 +-
 src/changes/changes.xml                         | 5534 +++++++++---------
 src/site/xdoc/articles.xml                      |    9 +
 src/site/xdoc/manual/appenders.xml              |   20 +-
 src/site/xdoc/manual/extending.xml              |    2 +-
 src/site/xdoc/manual/plugins.xml                |    2 +-
 25 files changed, 3200 insertions(+), 2891 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6ddad08f/pom.xml
----------------------------------------------------------------------


[19/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/245cc32c
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/245cc32c
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/245cc32c

Branch: refs/heads/master
Commit: 245cc32c284162ea480e7c2759685883e6ee6458
Parents: 20598da 48a6dd9
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Mon Jun 27 13:52:04 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Mon Jun 27 13:52:04 2016 +0200

----------------------------------------------------------------------
 log4j-api/src/main/java/org/apache/logging/log4j/Logger.java       | 2 +-
 .../apache/logging/log4j/core/pattern/MessagePatternConverter.java | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[21/50] logging-log4j2 git commit: Fix link formatting

Posted by mi...@apache.org.
Fix link formatting


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/45306d88
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/45306d88
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/45306d88

Branch: refs/heads/master
Commit: 45306d88d557e1a3dd632f959e42de20472c5931
Parents: 06e4b18
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jun 28 10:32:58 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jun 28 10:32:58 2016 +0200

----------------------------------------------------------------------
 src/site/xdoc/manual/scala-api.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/45306d88/src/site/xdoc/manual/scala-api.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/scala-api.xml b/src/site/xdoc/manual/scala-api.xml
index 4f3d994..0169717 100644
--- a/src/site/xdoc/manual/scala-api.xml
+++ b/src/site/xdoc/manual/scala-api.xml
@@ -30,7 +30,7 @@
             <subsection name="Scala API">
                 <p>
                     Log4j 2 contains a convenient Scala wrapper for the
-                    <a href="../log4j-api/apidocs/org/apache/logging/log4j/Logger.html">Logger</a>
+                    <a class="javadoc" href="../log4j-api/apidocs/org/apache/logging/log4j/Logger.html">Logger</a>
                     API.
                 </p>
 
@@ -76,7 +76,7 @@
                     Most logging implementations use a hierarchical scheme for matching logger names with logging
                     configuration. In this scheme the logger name hierarchy is represented by '.' characters in the
                     logger name, in a fashion very similar to the hierarchy used for Java/Scala package names.
-                    The <a href="../log4j-api-scala_2.11/scaladocs/index.html#org.apache.logging.log4j.scala.Logging">Logging trait</a> will automatically name the Logger accordingly to the class it is being used in.
+                    The <a class="javadoc" href="../log4j-api-scala_2.11/scaladocs/index.html#org.apache.logging.log4j.scala.Logging">Logging trait</a> will automatically name the Logger accordingly to the class it is being used in.
                 </p>
 
                 <h4>ScalaDoc</h4>


[10/50] logging-log4j2 git commit: Add Scala API to BOM

Posted by mi...@apache.org.
Add Scala API to BOM


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/89155dc9
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/89155dc9
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/89155dc9

Branch: refs/heads/master
Commit: 89155dc9dc3e13568fe960926342b54a77399906
Parents: 6ddad08
Author: Mikael St�ldal <mi...@staldal.nu>
Authored: Sun Jun 26 16:58:21 2016 +0200
Committer: Mikael St�ldal <mi...@staldal.nu>
Committed: Sun Jun 26 16:58:21 2016 +0200

----------------------------------------------------------------------
 log4j-bom/pom.xml | 12 ++++++++++++
 1 file changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/89155dc9/log4j-bom/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-bom/pom.xml b/log4j-bom/pom.xml
index 4c40b90..64d0053 100644
--- a/log4j-bom/pom.xml
+++ b/log4j-bom/pom.xml
@@ -108,6 +108,18 @@
         <artifactId>log4j-liquibase</artifactId>
         <version>${project.version}</version>
       </dependency>
+      <!-- Scala 2.10 API -->
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api-scala_2.10</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <!-- Scala 2.11 API -->
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api-scala_2.11</artifactId>
+        <version>${project.version}</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
   <build>


[25/50] logging-log4j2 git commit: Merge branch 'master' into LOG4J-1181

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J-1181


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/bce8794a
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/bce8794a
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/bce8794a

Branch: refs/heads/master
Commit: bce8794ad655afe49ceaba256dd1b8476c6ed169
Parents: cbe0e5d da3550d
Author: Mikael St�ldal <mi...@magine.com>
Authored: Wed Jun 29 19:32:11 2016 +0200
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Wed Jun 29 19:32:11 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/logging/log4j/Logger.java   |  3 +
 .../org/apache/logging/log4j/LoggerTest.java    | 62 +++++++++++++++++---
 2 files changed, 56 insertions(+), 9 deletions(-)
----------------------------------------------------------------------