Yes, I am working on that.

On Fri, Oct 30, 2015 at 12:41 PM, Gary Gregory <garydgreg...@gmail.com>
wrote:

> Shouldn't these new modules have tests?
>
> Gary
> On Oct 30, 2015 12:58 AM, "Mikael Ståldal" <mikael.stal...@magine.com>
> wrote:
>
>> A lot of Scala libraries does like this.
>>
>> On Fri, Oct 30, 2015 at 4:45 AM, Gary Gregory <garydgreg...@gmail.com>
>> wrote:
>>
>>> If that is the case so far, then that's that! We can deal with
>>> compatible versions in the future...
>>>
>>> Gary
>>> On Oct 29, 2015 1:35 PM, "Matt Sicker" <boa...@gmail.com> wrote:
>>>
>>>> If there's no binary compatibility between versions, it doesn't sound
>>>> like it's even possible to run both version 10 and 11 at the same time.
>>>>
>>>> On 29 October 2015 at 13:39, Gary Gregory <garydgreg...@gmail.com>
>>>> wrote:
>>>>
>>>>> So users will have to resolve dependencies if one jar depends on our
>>>>> version 10 and another jar depends on version 11, right?
>>>>>
>>>>> Would it ever be possible for two of our Scala jars to run in the same
>>>>> classloader (right now, no, since they have the same Java package).
>>>>>
>>>>> Gary
>>>>>
>>>>> On Thu, Oct 29, 2015 at 9:09 AM, Mikael Ståldal <
>>>>> mikael.stal...@magine.com> wrote:
>>>>>
>>>>>> The Java package will be the same (org.apache.logging.log4j.scala),
>>>>>> no version in there.
>>>>>>
>>>>>> On Thu, Oct 29, 2015 at 5:06 PM, Gary Gregory <garydgreg...@gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> Will the packages also have a version in the name?
>>>>>>>
>>>>>>> Gary
>>>>>>> On Oct 29, 2015 2:28 AM, "Mikael Ståldal" <mikael.stal...@magine.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> The "_2.11" (and "_2.10" etc) suffix on Maven artifact IDs is the
>>>>>>>> Scala convention, and it is even implemented in the Scala build tool 
>>>>>>>> SBT.
>>>>>>>> If we use "-2.11" we break that.
>>>>>>>>
>>>>>>>>
>>>>>>>> http://www.scala-sbt.org/0.12.4/docs/Detailed-Topics/Cross-Build.html
>>>>>>>>
>>>>>>>> On Wed, Oct 28, 2015 at 7:57 PM, Gary Gregory <
>>>>>>>> garydgreg...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> I find it confusing that we use two formats for versions in names:
>>>>>>>>>
>>>>>>>>> - log4j-scala_2.11
>>>>>>>>> - log4j-1.2-api
>>>>>>>>>
>>>>>>>>> Shouldn't we have log4j-scala-2.11?
>>>>>>>>>
>>>>>>>>> Gary
>>>>>>>>>
>>>>>>>>> ---------- Forwarded message ----------
>>>>>>>>> From: <mi...@apache.org>
>>>>>>>>> Date: Wed, Oct 28, 2015 at 10:08 AM
>>>>>>>>> Subject: logging-log4j2 git commit: Scala 2.11 logging
>>>>>>>>> To: comm...@logging.apache.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Repository: logging-log4j2
>>>>>>>>> Updated Branches:
>>>>>>>>>   refs/heads/LOG4J-1181 [created] 968058160
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Scala 2.11 logging
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Project:
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
>>>>>>>>> Commit:
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/96805816
>>>>>>>>> Tree:
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/96805816
>>>>>>>>> Diff:
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/96805816
>>>>>>>>>
>>>>>>>>> Branch: refs/heads/LOG4J-1181
>>>>>>>>> Commit: 9680581602af65eaee778e85affa9e4926acf1a2
>>>>>>>>> Parents: fdce364
>>>>>>>>> Author: Mikael Ståldal <mikael.stal...@magine.com>
>>>>>>>>> Authored: Wed Oct 28 18:07:39 2015 +0100
>>>>>>>>> Committer: Mikael Ståldal <mikael.stal...@magine.com>
>>>>>>>>> Committed: Wed Oct 28 18:07:39 2015 +0100
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>>  log4j-scala_2.11/pom.xml                        | 254
>>>>>>>>> +++++++++++++++++++
>>>>>>>>>  .../org/apache/logging/log4j/scala/Logger.scala | 211
>>>>>>>>> +++++++++++++++
>>>>>>>>>  .../logging/log4j/scala/LoggerMacro.scala       | 217
>>>>>>>>> ++++++++++++++++
>>>>>>>>>  .../apache/logging/log4j/scala/Logging.scala    |  10 +
>>>>>>>>>  pom.xml                                         |   6 +
>>>>>>>>>  5 files changed, 698 insertions(+)
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/96805816/log4j-scala_2.11/pom.xml
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>> diff --git a/log4j-scala_2.11/pom.xml b/log4j-scala_2.11/pom.xml
>>>>>>>>> new file mode 100644
>>>>>>>>> index 0000000..81132c4
>>>>>>>>> --- /dev/null
>>>>>>>>> +++ b/log4j-scala_2.11/pom.xml
>>>>>>>>> @@ -0,0 +1,254 @@
>>>>>>>>> +<?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.
>>>>>>>>> +-->
>>>>>>>>> +<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>
>>>>>>>>> +    <groupId>org.apache.logging.log4j</groupId>
>>>>>>>>> +    <artifactId>log4j</artifactId>
>>>>>>>>> +    <version>2.5-SNAPSHOT</version>
>>>>>>>>> +    <relativePath>../</relativePath>
>>>>>>>>> +  </parent>
>>>>>>>>> +  <artifactId>log4j-scala_2.11</artifactId>
>>>>>>>>> +  <packaging>jar</packaging>
>>>>>>>>> +  <name>Scala warpper for Log4j API</name>
>>>>>>>>> +  <description>Scala warpper for Log4j API</description>
>>>>>>>>> +  <properties>
>>>>>>>>> +    <log4jParentDir>${basedir}/..</log4jParentDir>
>>>>>>>>> +    <projectDir>/scala_2.11</projectDir>
>>>>>>>>> +    <scala.version>2.11.7</scala.version>
>>>>>>>>> +  </properties>
>>>>>>>>> +  <dependencies>
>>>>>>>>> +    <dependency>
>>>>>>>>> +      <groupId>org.apache.logging.log4j</groupId>
>>>>>>>>> +      <artifactId>log4j-api</artifactId>
>>>>>>>>> +    </dependency>
>>>>>>>>> +    <dependency>
>>>>>>>>> +      <groupId>org.scala-lang</groupId>
>>>>>>>>> +      <artifactId>scala-library</artifactId>
>>>>>>>>> +      <version>${scala.version}</version>
>>>>>>>>> +    </dependency>
>>>>>>>>> +    <dependency>
>>>>>>>>> +      <groupId>org.scala-lang</groupId>
>>>>>>>>> +      <artifactId>scala-reflect</artifactId>
>>>>>>>>> +      <version>${scala.version}</version>
>>>>>>>>> +    </dependency>
>>>>>>>>> +    <dependency>
>>>>>>>>> +      <groupId>org.apache.logging.log4j</groupId>
>>>>>>>>> +      <artifactId>log4j-api</artifactId>
>>>>>>>>> +      <type>test-jar</type>
>>>>>>>>> +      <scope>test</scope>
>>>>>>>>> +    </dependency>
>>>>>>>>> +    <dependency>
>>>>>>>>> +      <groupId>org.apache.logging.log4j</groupId>
>>>>>>>>> +      <artifactId>log4j-core</artifactId>
>>>>>>>>> +      <scope>test</scope>
>>>>>>>>> +    </dependency>
>>>>>>>>> +    <dependency>
>>>>>>>>> +      <groupId>org.apache.logging.log4j</groupId>
>>>>>>>>> +      <artifactId>log4j-core</artifactId>
>>>>>>>>> +      <type>test-jar</type>
>>>>>>>>> +      <scope>test</scope>
>>>>>>>>> +    </dependency>
>>>>>>>>> +    <dependency>
>>>>>>>>> +      <groupId>junit</groupId>
>>>>>>>>> +      <artifactId>junit</artifactId>
>>>>>>>>> +      <scope>test</scope>
>>>>>>>>> +    </dependency>
>>>>>>>>> +  </dependencies>
>>>>>>>>> +  <build>
>>>>>>>>> +    <sourceDirectory>src/main/scala</sourceDirectory>
>>>>>>>>> +    <testSourceDirectory>src/test/scala</testSourceDirectory>
>>>>>>>>> +    <plugins>
>>>>>>>>> +      <plugin>
>>>>>>>>> +        <groupId>net.alchim31.maven</groupId>
>>>>>>>>> +        <artifactId>scala-maven-plugin</artifactId>
>>>>>>>>> +        <executions>
>>>>>>>>> +          <execution>
>>>>>>>>> +            <goals>
>>>>>>>>> +              <goal>compile</goal>
>>>>>>>>> +              <goal>testCompile</goal>
>>>>>>>>> +            </goals>
>>>>>>>>> +          </execution>
>>>>>>>>> +        </executions>
>>>>>>>>> +      </plugin>
>>>>>>>>> +      <plugin>
>>>>>>>>> +        <groupId>org.apache.maven.plugins</groupId>
>>>>>>>>> +        <artifactId>maven-surefire-plugin</artifactId>
>>>>>>>>> +        <configuration>
>>>>>>>>> +          <excludes>
>>>>>>>>> +            <exclude>**/*Test.java</exclude>
>>>>>>>>> +          </excludes>
>>>>>>>>> +        </configuration>
>>>>>>>>> +        <executions>
>>>>>>>>> +          <execution>
>>>>>>>>> +            <id>default-tests</id>
>>>>>>>>> +            <phase>test</phase>
>>>>>>>>> +            <goals>
>>>>>>>>> +              <goal>test</goal>
>>>>>>>>> +            </goals>
>>>>>>>>> +            <configuration>
>>>>>>>>> +              <includes>
>>>>>>>>> +                <include>**/*Test.java</include>
>>>>>>>>> +              </includes>
>>>>>>>>> +              <excludes>
>>>>>>>>> +                <exclude>**/OptionalTest.java</exclude>
>>>>>>>>> +              </excludes>
>>>>>>>>> +            </configuration>
>>>>>>>>> +          </execution>
>>>>>>>>> +          <execution>
>>>>>>>>> +            <id>test-optional</id>
>>>>>>>>> +            <phase>test</phase>
>>>>>>>>> +            <goals>
>>>>>>>>> +              <goal>test</goal>
>>>>>>>>> +            </goals>
>>>>>>>>> +            <configuration>
>>>>>>>>> +              <excludes>
>>>>>>>>> +                <exclude>**/LoggerTest.java</exclude>
>>>>>>>>> +                <exclude>**/MarkerTest.java</exclude>
>>>>>>>>> +                <exclude>**/SerializeTest.java</exclude>
>>>>>>>>> +              </excludes>
>>>>>>>>> +              <includes>
>>>>>>>>> +                <include>**/OptionalTest.java</include>
>>>>>>>>> +              </includes>
>>>>>>>>> +            </configuration>
>>>>>>>>> +          </execution>
>>>>>>>>> +        </executions>
>>>>>>>>> +      </plugin>
>>>>>>>>> +      <!-- Include the standard NOTICE and LICENSE -->
>>>>>>>>> +      <plugin>
>>>>>>>>> +        <groupId>org.apache.maven.plugins</groupId>
>>>>>>>>> +        <artifactId>maven-remote-resources-plugin</artifactId>
>>>>>>>>> +        <executions>
>>>>>>>>> +          <execution>
>>>>>>>>> +            <goals>
>>>>>>>>> +              <goal>process</goal>
>>>>>>>>> +            </goals>
>>>>>>>>> +            <configuration>
>>>>>>>>> +              <skip>false</skip>
>>>>>>>>> +            </configuration>
>>>>>>>>> +          </execution>
>>>>>>>>> +        </executions>
>>>>>>>>> +      </plugin>
>>>>>>>>> +      <plugin>
>>>>>>>>> +        <groupId>org.apache.felix</groupId>
>>>>>>>>> +        <artifactId>maven-bundle-plugin</artifactId>
>>>>>>>>> +        <configuration>
>>>>>>>>> +          <instructions>
>>>>>>>>> +            <Export-Package>
>>>>>>>>> +              liquibase.ext.logging.log4j2
>>>>>>>>> +            </Export-Package>
>>>>>>>>> +          </instructions>
>>>>>>>>> +        </configuration>
>>>>>>>>> +      </plugin>
>>>>>>>>> +    </plugins>
>>>>>>>>> +  </build>
>>>>>>>>> +  <reporting>
>>>>>>>>> +    <plugins>
>>>>>>>>> +      <plugin>
>>>>>>>>> +        <groupId>org.apache.maven.plugins</groupId>
>>>>>>>>> +        <artifactId>maven-changes-plugin</artifactId>
>>>>>>>>> +        <version>${changes.plugin.version}</version>
>>>>>>>>> +        <reportSets>
>>>>>>>>> +          <reportSet>
>>>>>>>>> +            <reports>
>>>>>>>>> +              <report>changes-report</report>
>>>>>>>>> +            </reports>
>>>>>>>>> +          </reportSet>
>>>>>>>>> +        </reportSets>
>>>>>>>>> +        <configuration>
>>>>>>>>> +
>>>>>>>>> <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
>>>>>>>>> +          <useJql>true</useJql>
>>>>>>>>> +        </configuration>
>>>>>>>>> +      </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.apache.maven.plugins</groupId>
>>>>>>>>> +        <artifactId>maven-javadoc-plugin</artifactId>
>>>>>>>>> +        <version>${javadoc.plugin.version}</version>
>>>>>>>>> +        <configuration>
>>>>>>>>> +          <bottom><![CDATA[<p align="center">Copyright &#169;
>>>>>>>>> {inceptionYear}-{currentYear} {organizationName}. All Rights 
>>>>>>>>> Reserved.<br />
>>>>>>>>> +            Apache Logging, Apache Log4j, Log4j, Apache, the
>>>>>>>>> Apache feather logo, the Apache Logging project logo,
>>>>>>>>> +            and the Apache Log4j logo are trademarks of The
>>>>>>>>> Apache Software Foundation.</p>]]></bottom>
>>>>>>>>> +          <!-- module link generation is completely broken in the
>>>>>>>>> javadoc plugin for a multi-module non-aggregating
>>>>>>>>> +               project -->
>>>>>>>>> +          <detectOfflineLinks>false</detectOfflineLinks>
>>>>>>>>> +          <linksource>true</linksource>
>>>>>>>>> +        </configuration>
>>>>>>>>> +        <reportSets>
>>>>>>>>> +          <reportSet>
>>>>>>>>> +            <id>non-aggregate</id>
>>>>>>>>> +            <reports>
>>>>>>>>> +              <report>javadoc</report>
>>>>>>>>> +            </reports>
>>>>>>>>> +          </reportSet>
>>>>>>>>> +        </reportSets>
>>>>>>>>> +      </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>
>>>>>>>>> +          <targetJdk>${maven.compile.target}</targetJdk>
>>>>>>>>> +        </configuration>
>>>>>>>>> +      </plugin>
>>>>>>>>> +    </plugins>
>>>>>>>>> +  </reporting>
>>>>>>>>> +</project>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/96805816/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>> diff --git
>>>>>>>>> a/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
>>>>>>>>> b/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
>>>>>>>>> new file mode 100644
>>>>>>>>> index 0000000..63cce4d
>>>>>>>>> --- /dev/null
>>>>>>>>> +++
>>>>>>>>> b/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
>>>>>>>>> @@ -0,0 +1,211 @@
>>>>>>>>> +package org.apache.logging.log4j.scala
>>>>>>>>> +
>>>>>>>>> +import org.apache.logging.log4j.message.Message
>>>>>>>>> +import org.apache.logging.log4j.spi.ExtendedLogger
>>>>>>>>> +import org.apache.logging.log4j.{Level, Marker}
>>>>>>>>> +
>>>>>>>>> +import scala.language.experimental.macros
>>>>>>>>> +
>>>>>>>>> +class Logger(val delegate: ExtendedLogger) {
>>>>>>>>> +
>>>>>>>>> +  private final val FQCN = classOf[Logger].getName
>>>>>>>>> +
>>>>>>>>> +  def fatal(marker: Marker, message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.fatalMarkerMsg
>>>>>>>>> +
>>>>>>>>> +  def fatal(marker: Marker, message: Message, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.fatalMarkerMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def fatal(marker: Marker, message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.fatalMarkerString
>>>>>>>>> +
>>>>>>>>> +  def fatal(marker: Marker, message: String, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.fatalMarkerStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def fatal(message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.fatalMsg
>>>>>>>>> +
>>>>>>>>> +  def fatal(message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.fatalString
>>>>>>>>> +
>>>>>>>>> +  def fatal(message: Message, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.fatalMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def fatal(message: String, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.fatalStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def error(marker: Marker, message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.errorMarkerMsg
>>>>>>>>> +
>>>>>>>>> +  def error(marker: Marker, message: Message, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.errorMarkerMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def error(marker: Marker, message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.errorMarkerString
>>>>>>>>> +
>>>>>>>>> +  def error(marker: Marker, message: String, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.errorMarkerStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def error(message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.errorMsg
>>>>>>>>> +
>>>>>>>>> +  def error(message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.errorString
>>>>>>>>> +
>>>>>>>>> +  def error(message: Message, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.errorMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def error(message: String, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.errorStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def warn(marker: Marker, message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.warnMarkerMsg
>>>>>>>>> +
>>>>>>>>> +  def warn(marker: Marker, message: Message, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.warnMarkerMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def warn(marker: Marker, message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.warnMarkerString
>>>>>>>>> +
>>>>>>>>> +  def warn(marker: Marker, message: String, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.warnMarkerStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def warn(message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.warnMsg
>>>>>>>>> +
>>>>>>>>> +  def warn(message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.warnString
>>>>>>>>> +
>>>>>>>>> +  def warn(message: Message, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.warnMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def warn(message: String, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.warnStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def info(marker: Marker, message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.infoMarkerMsg
>>>>>>>>> +
>>>>>>>>> +  def info(marker: Marker, message: Message, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.infoMarkerMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def info(marker: Marker, message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.infoMarkerString
>>>>>>>>> +
>>>>>>>>> +  def info(marker: Marker, message: String, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.infoMarkerStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def info(message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.infoMsg
>>>>>>>>> +
>>>>>>>>> +  def info(message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.infoString
>>>>>>>>> +
>>>>>>>>> +  def info(message: Message, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.infoMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def info(message: String, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.infoStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def debug(marker: Marker, message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.debugMarkerMsg
>>>>>>>>> +
>>>>>>>>> +  def debug(marker: Marker, message: Message, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.debugMarkerMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def debug(marker: Marker, message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.debugMarkerString
>>>>>>>>> +
>>>>>>>>> +  def debug(marker: Marker, message: String, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.debugMarkerStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def debug(message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.debugMsg
>>>>>>>>> +
>>>>>>>>> +  def debug(message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.debugString
>>>>>>>>> +
>>>>>>>>> +  def debug(message: Message, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.debugMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def debug(message: String, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.debugStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def trace(marker: Marker, message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.traceMarkerMsg
>>>>>>>>> +
>>>>>>>>> +  def trace(marker: Marker, message: Message, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.traceMarkerMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def trace(marker: Marker, message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.traceMarkerString
>>>>>>>>> +
>>>>>>>>> +  def trace(marker: Marker, message: String, cause: Throwable):
>>>>>>>>> Unit =
>>>>>>>>> +  macro LoggerMacro.traceMarkerStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def trace(message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.traceMsg
>>>>>>>>> +
>>>>>>>>> +  def trace(message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.traceString
>>>>>>>>> +
>>>>>>>>> +  def trace(message: Message, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.traceMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def trace(message: String, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.traceStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def log(level: Level, marker: Marker, message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.logMarkerMsg
>>>>>>>>> +
>>>>>>>>> +  def log(level: Level, marker: Marker, message: Message, cause:
>>>>>>>>> Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.logMarkerMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def log(level: Level, marker: Marker, message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.logMarkerString
>>>>>>>>> +
>>>>>>>>> +  def log(level: Level, marker: Marker, message: String, cause:
>>>>>>>>> Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.logMarkerStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def log(level: Level, message: Message): Unit =
>>>>>>>>> +  macro LoggerMacro.logMsg
>>>>>>>>> +
>>>>>>>>> +  def log(level: Level, message: String): Unit =
>>>>>>>>> +  macro LoggerMacro.logString
>>>>>>>>> +
>>>>>>>>> +  def log(level: Level, message: Message, cause: Throwable): Unit
>>>>>>>>> =
>>>>>>>>> +  macro LoggerMacro.logMsgThrowable
>>>>>>>>> +
>>>>>>>>> +  def log(level: Level, message: String, cause: Throwable): Unit =
>>>>>>>>> +  macro LoggerMacro.logStringThrowable
>>>>>>>>> +
>>>>>>>>> +  def isEnabled(level: Level): Boolean = delegate.isEnabled(level)
>>>>>>>>> +
>>>>>>>>> +  def isEnabled(level: Level, marker: Marker): Boolean =
>>>>>>>>> delegate.isEnabled(level, marker)
>>>>>>>>> +
>>>>>>>>> +  def level: Level = delegate.getLevel
>>>>>>>>> +
>>>>>>>>> +  def name: String = delegate.getName
>>>>>>>>> +
>>>>>>>>> +  /** Should normally not be used directly from application code,
>>>>>>>>> but needs to be public for access by macros.
>>>>>>>>> +    *
>>>>>>>>> +    * @param level    log level
>>>>>>>>> +    * @param marker   marker or `null`
>>>>>>>>> +    * @param message  message
>>>>>>>>> +    * @param cause    cause or `null`
>>>>>>>>> +    */
>>>>>>>>> +  def logMessage(level: Level, marker: Marker, message: Message,
>>>>>>>>> cause: Throwable): Unit = {
>>>>>>>>> +    delegate.logIfEnabled(FQCN, level, marker, message, cause)
>>>>>>>>> +  }
>>>>>>>>> +
>>>>>>>>> +  /** 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: String,
>>>>>>>>> cause: Throwable): Unit = {
>>>>>>>>> +    delegate.logIfEnabled(FQCN, level, marker, message, cause)
>>>>>>>>> +  }
>>>>>>>>> +
>>>>>>>>> +}
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/96805816/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>> diff --git
>>>>>>>>> a/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
>>>>>>>>> b/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
>>>>>>>>> new file mode 100644
>>>>>>>>> index 0000000..e8dfb3a
>>>>>>>>> --- /dev/null
>>>>>>>>> +++
>>>>>>>>> b/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
>>>>>>>>> @@ -0,0 +1,217 @@
>>>>>>>>> +package org.apache.logging.log4j.scala
>>>>>>>>> +
>>>>>>>>> +import org.apache.logging.log4j.message.Message
>>>>>>>>> +import org.apache.logging.log4j.{Level, Marker}
>>>>>>>>> +
>>>>>>>>> +import scala.language.experimental.macros
>>>>>>>>> +
>>>>>>>>> +// Using the deprecated Context to be compatible with both Scala
>>>>>>>>> 2.10 and Scala 2.11
>>>>>>>>> +//noinspection ScalaDeprecation
>>>>>>>>> +import scala.reflect.macros.Context
>>>>>>>>> +
>>>>>>>>> +//noinspection ScalaDeprecation
>>>>>>>>> +private object LoggerMacro {
>>>>>>>>> +
>>>>>>>>> +  type LoggerContext = Context { type PrefixType = Logger }
>>>>>>>>> +
>>>>>>>>> +  def fatalMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[Message]) =
>>>>>>>>> +    logMarkerMsg(c)(c.universe.reify(Level.WARN), marker, message)
>>>>>>>>> +
>>>>>>>>> +  def fatalMarkerMsgThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerMsgThrowable(c)(c.universe.reify(Level.FATAL),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def fatalMarkerString(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[String]) =
>>>>>>>>> +    logMarkerString(c)(c.universe.reify(Level.FATAL), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def fatalMarkerStringThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerStringThrowable(c)(c.universe.reify(Level.FATAL),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def fatalMsg(c: LoggerContext)(message: c.Expr[Message]) =
>>>>>>>>> +    logMsg(c)(c.universe.reify(Level.FATAL), message)
>>>>>>>>> +
>>>>>>>>> +  def fatalMsgThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMsgThrowable(c)(c.universe.reify(Level.FATAL), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def fatalString(c: LoggerContext)(message: c.Expr[String]) =
>>>>>>>>> +    logString(c)(c.universe.reify(Level.FATAL), message)
>>>>>>>>> +
>>>>>>>>> +  def fatalStringThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logStringThrowable(c)(c.universe.reify(Level.FATAL), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def errorMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[Message]) =
>>>>>>>>> +    logMarkerMsg(c)(c.universe.reify(Level.ERROR), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def errorMarkerMsgThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerMsgThrowable(c)(c.universe.reify(Level.ERROR),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def errorMarkerString(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[String]) =
>>>>>>>>> +    logMarkerString(c)(c.universe.reify(Level.ERROR), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def errorMarkerStringThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerStringThrowable(c)(c.universe.reify(Level.ERROR),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def errorMsg(c: LoggerContext)(message: c.Expr[Message]) =
>>>>>>>>> +    logMsg(c)(c.universe.reify(Level.ERROR), message)
>>>>>>>>> +
>>>>>>>>> +  def errorMsgThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMsgThrowable(c)(c.universe.reify(Level.ERROR), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def errorString(c: LoggerContext)(message: c.Expr[String]) =
>>>>>>>>> +    logString(c)(c.universe.reify(Level.ERROR), message)
>>>>>>>>> +
>>>>>>>>> +  def errorStringThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logStringThrowable(c)(c.universe.reify(Level.ERROR), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def warnMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[Message]) =
>>>>>>>>> +    logMarkerMsg(c)(c.universe.reify(Level.WARN), marker, message)
>>>>>>>>> +
>>>>>>>>> +  def warnMarkerMsgThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerMsgThrowable(c)(c.universe.reify(Level.WARN),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def warnMarkerString(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[String]) =
>>>>>>>>> +    logMarkerString(c)(c.universe.reify(Level.WARN), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def warnMarkerStringThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerStringThrowable(c)(c.universe.reify(Level.WARN),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def warnMsg(c: LoggerContext)(message: c.Expr[Message]) =
>>>>>>>>> +    logMsg(c)(c.universe.reify(Level.WARN), message)
>>>>>>>>> +
>>>>>>>>> +  def warnMsgThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMsgThrowable(c)(c.universe.reify(Level.WARN), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def warnString(c: LoggerContext)(message: c.Expr[String]) =
>>>>>>>>> +    logString(c)(c.universe.reify(Level.WARN), message)
>>>>>>>>> +
>>>>>>>>> +  def warnStringThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logStringThrowable(c)(c.universe.reify(Level.WARN), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def infoMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[Message]) =
>>>>>>>>> +    logMarkerMsg(c)(c.universe.reify(Level.INFO), marker, message)
>>>>>>>>> +
>>>>>>>>> +  def infoMarkerMsgThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerMsgThrowable(c)(c.universe.reify(Level.INFO),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def infoMarkerString(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[String]) =
>>>>>>>>> +    logMarkerString(c)(c.universe.reify(Level.INFO), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def infoMarkerStringThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerStringThrowable(c)(c.universe.reify(Level.INFO),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def infoMsg(c: LoggerContext)(message: c.Expr[Message]) =
>>>>>>>>> +    logMsg(c)(c.universe.reify(Level.INFO), message)
>>>>>>>>> +
>>>>>>>>> +  def infoMsgThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMsgThrowable(c)(c.universe.reify(Level.INFO), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def infoString(c: LoggerContext)(message: c.Expr[String]) =
>>>>>>>>> +    logString(c)(c.universe.reify(Level.INFO), message)
>>>>>>>>> +
>>>>>>>>> +  def infoStringThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logStringThrowable(c)(c.universe.reify(Level.INFO), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def debugMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[Message]) =
>>>>>>>>> +    logMarkerMsg(c)(c.universe.reify(Level.DEBUG), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def debugMarkerMsgThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerMsgThrowable(c)(c.universe.reify(Level.DEBUG),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def debugMarkerString(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[String]) =
>>>>>>>>> +    logMarkerString(c)(c.universe.reify(Level.DEBUG), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def debugMarkerStringThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerStringThrowable(c)(c.universe.reify(Level.DEBUG),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def debugMsg(c: LoggerContext)(message: c.Expr[Message]) =
>>>>>>>>> +    logMsg(c)(c.universe.reify(Level.DEBUG), message)
>>>>>>>>> +
>>>>>>>>> +  def debugMsgThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMsgThrowable(c)(c.universe.reify(Level.DEBUG), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def debugString(c: LoggerContext)(message: c.Expr[String]) =
>>>>>>>>> +    logString(c)(c.universe.reify(Level.DEBUG), message)
>>>>>>>>> +
>>>>>>>>> +  def debugStringThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logStringThrowable(c)(c.universe.reify(Level.DEBUG), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def traceMarkerMsg(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[Message]) =
>>>>>>>>> +    logMarkerMsg(c)(c.universe.reify(Level.TRACE), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def traceMarkerMsgThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerMsgThrowable(c)(c.universe.reify(Level.TRACE),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def traceMarkerString(c: LoggerContext)(marker: c.Expr[Marker],
>>>>>>>>> message: c.Expr[String]) =
>>>>>>>>> +    logMarkerString(c)(c.universe.reify(Level.TRACE), marker,
>>>>>>>>> message)
>>>>>>>>> +
>>>>>>>>> +  def traceMarkerStringThrowable(c: LoggerContext)(marker:
>>>>>>>>> c.Expr[Marker], message: c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMarkerStringThrowable(c)(c.universe.reify(Level.TRACE),
>>>>>>>>> marker, message, cause)
>>>>>>>>> +
>>>>>>>>> +  def traceMsg(c: LoggerContext)(message: c.Expr[Message]) =
>>>>>>>>> +    logMsg(c)(c.universe.reify(Level.TRACE), message)
>>>>>>>>> +
>>>>>>>>> +  def traceMsgThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logMsgThrowable(c)(c.universe.reify(Level.TRACE), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def traceString(c: LoggerContext)(message: c.Expr[String]) =
>>>>>>>>> +    logString(c)(c.universe.reify(Level.TRACE), message)
>>>>>>>>> +
>>>>>>>>> +  def traceStringThrowable(c: LoggerContext)(message:
>>>>>>>>> c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    logStringThrowable(c)(c.universe.reify(Level.TRACE), message,
>>>>>>>>> cause)
>>>>>>>>> +
>>>>>>>>> +  def logMarkerMsg(c: LoggerContext)(level: c.Expr[Level],
>>>>>>>>> marker: c.Expr[Marker], message: c.Expr[Message]) =
>>>>>>>>> +    c.universe.reify(
>>>>>>>>> +      if (c.prefix.splice.delegate.isEnabled(level.splice,
>>>>>>>>> marker.splice)) {
>>>>>>>>> +        c.prefix.splice.logMessage(level.splice, marker.splice,
>>>>>>>>> message.splice, null)
>>>>>>>>> +      }
>>>>>>>>> +    )
>>>>>>>>> +
>>>>>>>>> +  def logMarkerMsgThrowable(c: LoggerContext)(level:
>>>>>>>>> c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[Message], 
>>>>>>>>> cause:
>>>>>>>>> c.Expr[Throwable]) =
>>>>>>>>> +    c.universe.reify(
>>>>>>>>> +      if (c.prefix.splice.delegate.isEnabled(level.splice,
>>>>>>>>> marker.splice)) {
>>>>>>>>> +        c.prefix.splice.logMessage(level.splice, marker.splice,
>>>>>>>>> message.splice, cause.splice)
>>>>>>>>> +      }
>>>>>>>>> +    )
>>>>>>>>> +
>>>>>>>>> +  def logMarkerString(c: LoggerContext)(level: c.Expr[Level],
>>>>>>>>> marker: c.Expr[Marker], message: c.Expr[String]) =
>>>>>>>>> +    c.universe.reify(
>>>>>>>>> +      if (c.prefix.splice.delegate.isEnabled(level.splice,
>>>>>>>>> marker.splice)) {
>>>>>>>>> +        c.prefix.splice.logMessage(level.splice, marker.splice,
>>>>>>>>> message.splice, null)
>>>>>>>>> +      }
>>>>>>>>> +    )
>>>>>>>>> +
>>>>>>>>> +  def logMarkerStringThrowable(c: LoggerContext)(level:
>>>>>>>>> c.Expr[Level], marker: c.Expr[Marker], message: c.Expr[String], cause:
>>>>>>>>> c.Expr[Throwable]) =
>>>>>>>>> +    c.universe.reify(
>>>>>>>>> +      if (c.prefix.splice.delegate.isEnabled(level.splice,
>>>>>>>>> marker.splice)) {
>>>>>>>>> +        c.prefix.splice.logMessage(level.splice, marker.splice,
>>>>>>>>> message.splice, cause.splice)
>>>>>>>>> +      }
>>>>>>>>> +    )
>>>>>>>>> +
>>>>>>>>> +  def logMsg(c: LoggerContext)(level: c.Expr[Level], message:
>>>>>>>>> c.Expr[Message]) =
>>>>>>>>> +    c.universe.reify(
>>>>>>>>> +      if (c.prefix.splice.delegate.isEnabled(level.splice)) {
>>>>>>>>> +        c.prefix.splice.logMessage(level.splice, null,
>>>>>>>>> message.splice, null)
>>>>>>>>> +      }
>>>>>>>>> +    )
>>>>>>>>> +
>>>>>>>>> +  def logMsgThrowable(c: LoggerContext)(level: c.Expr[Level],
>>>>>>>>> message: c.Expr[Message], cause: c.Expr[Throwable]) =
>>>>>>>>> +    c.universe.reify(
>>>>>>>>> +      if (c.prefix.splice.delegate.isEnabled(level.splice)) {
>>>>>>>>> +        c.prefix.splice.logMessage(level.splice, null,
>>>>>>>>> message.splice, cause.splice)
>>>>>>>>> +      }
>>>>>>>>> +    )
>>>>>>>>> +
>>>>>>>>> +  def logString(c: LoggerContext)(level: c.Expr[Level], message:
>>>>>>>>> c.Expr[String]) =
>>>>>>>>> +    c.universe.reify(
>>>>>>>>> +      if (c.prefix.splice.delegate.isEnabled(level.splice)) {
>>>>>>>>> +        c.prefix.splice.logMessage(level.splice, null,
>>>>>>>>> message.splice, null)
>>>>>>>>> +      }
>>>>>>>>> +    )
>>>>>>>>> +
>>>>>>>>> +  def logStringThrowable(c: LoggerContext)(level: c.Expr[Level],
>>>>>>>>> message: c.Expr[String], cause: c.Expr[Throwable]) =
>>>>>>>>> +    c.universe.reify(
>>>>>>>>> +      if (c.prefix.splice.delegate.isEnabled(level.splice)) {
>>>>>>>>> +        c.prefix.splice.logMessage(level.splice, null,
>>>>>>>>> message.splice, cause.splice)
>>>>>>>>> +      }
>>>>>>>>> +    )
>>>>>>>>> +
>>>>>>>>> +}
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/96805816/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>> diff --git
>>>>>>>>> a/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
>>>>>>>>> b/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
>>>>>>>>> new file mode 100644
>>>>>>>>> index 0000000..0b3d03d
>>>>>>>>> --- /dev/null
>>>>>>>>> +++
>>>>>>>>> b/log4j-scala_2.11/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
>>>>>>>>> @@ -0,0 +1,10 @@
>>>>>>>>> +package org.apache.logging.log4j.scala
>>>>>>>>> +
>>>>>>>>> +import org.apache.logging.log4j.LogManager
>>>>>>>>> +
>>>>>>>>> +trait Logging {
>>>>>>>>> +
>>>>>>>>> +  protected lazy val logger: Logger =
>>>>>>>>> +    new Logger(LogManager.getContext(getClass.getClassLoader,
>>>>>>>>> false).getLogger(getClass.getName))
>>>>>>>>> +
>>>>>>>>> +}
>>>>>>>>> \ No newline at end of file
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/96805816/pom.xml
>>>>>>>>>
>>>>>>>>> ----------------------------------------------------------------------
>>>>>>>>> diff --git a/pom.xml b/pom.xml
>>>>>>>>> index b62f935..84cca69 100644
>>>>>>>>> --- a/pom.xml
>>>>>>>>> +++ b/pom.xml
>>>>>>>>> @@ -1131,6 +1131,11 @@
>>>>>>>>>            </excludes>
>>>>>>>>>          </configuration>
>>>>>>>>>        </plugin>
>>>>>>>>> +      <plugin>
>>>>>>>>> +        <groupId>net.alchim31.maven</groupId>
>>>>>>>>> +        <artifactId>scala-maven-plugin</artifactId>
>>>>>>>>> +        <version>3.2.2</version>
>>>>>>>>> +      </plugin>
>>>>>>>>>      </plugins>
>>>>>>>>>    </reporting>
>>>>>>>>>    <distributionManagement>
>>>>>>>>> @@ -1167,6 +1172,7 @@
>>>>>>>>>      <module>log4j-iostreams</module>
>>>>>>>>>      <module>log4j-jul</module>
>>>>>>>>>      <module>log4j-liquibase</module>
>>>>>>>>> +    <module>log4j-scala_2.11</module>
>>>>>>>>>    </modules>
>>>>>>>>>    <profiles>
>>>>>>>>>      <profile>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>>> <http://www.manning.com/bauer3/>
>>>>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/>
>>>>>>>>> Blog: http://garygregory.wordpress.com
>>>>>>>>> Home: http://garygregory.com/
>>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> [image: MagineTV]
>>>>>>>>
>>>>>>>> *Mikael Ståldal*
>>>>>>>> Senior software developer
>>>>>>>>
>>>>>>>> *Magine TV*
>>>>>>>> mikael.stal...@magine.com
>>>>>>>> Regeringsgatan 25  | 111 53 Stockholm, Sweden  |   www.magine.com
>>>>>>>>
>>>>>>>> Privileged and/or Confidential Information may be contained in this
>>>>>>>> message. If you are not the addressee indicated in this message
>>>>>>>> (or responsible for delivery of the message to such a person), you
>>>>>>>> may not copy or deliver this message to anyone. In such case,
>>>>>>>> you should destroy this message and kindly notify the sender by
>>>>>>>> reply email.
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> [image: MagineTV]
>>>>>>
>>>>>> *Mikael Ståldal*
>>>>>> Senior software developer
>>>>>>
>>>>>> *Magine TV*
>>>>>> mikael.stal...@magine.com
>>>>>> Regeringsgatan 25  | 111 53 Stockholm, Sweden  |   www.magine.com
>>>>>>
>>>>>> Privileged and/or Confidential Information may be contained in this
>>>>>> message. If you are not the addressee indicated in this message
>>>>>> (or responsible for delivery of the message to such a person), you
>>>>>> may not copy or deliver this message to anyone. In such case,
>>>>>> you should destroy this message and kindly notify the sender by reply
>>>>>> email.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>> Java Persistence with Hibernate, Second Edition
>>>>> <http://www.manning.com/bauer3/>
>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>>>> Spring Batch in Action <http://www.manning.com/templier/>
>>>>> Blog: http://garygregory.wordpress.com
>>>>> Home: http://garygregory.com/
>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Matt Sicker <boa...@gmail.com>
>>>>
>>>
>>
>>
>> --
>> [image: MagineTV]
>>
>> *Mikael Ståldal*
>> Senior software developer
>>
>> *Magine TV*
>> mikael.stal...@magine.com
>> Regeringsgatan 25  | 111 53 Stockholm, Sweden  |   www.magine.com
>>
>> Privileged and/or Confidential Information may be contained in this
>> message. If you are not the addressee indicated in this message
>> (or responsible for delivery of the message to such a person), you may
>> not copy or deliver this message to anyone. In such case,
>> you should destroy this message and kindly notify the sender by reply
>> email.
>>
>


-- 
[image: MagineTV]

*Mikael Ståldal*
Senior software developer

*Magine TV*
mikael.stal...@magine.com
Regeringsgatan 25  | 111 53 Stockholm, Sweden  |   www.magine.com

Privileged and/or Confidential Information may be contained in this
message. If you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not
copy or deliver this message to anyone. In such case,
you should destroy this message and kindly notify the sender by reply
email.

Reply via email to