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 2015/10/29 16:33:01 UTC
logging-log4j2 git commit: Support Scala 2.10 as well as 2.11
Repository: logging-log4j2
Updated Branches:
refs/heads/LOG4J-1181 607293644 -> 9bdac4a08
Support Scala 2.10 as well as 2.11
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/9bdac4a0
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/9bdac4a0
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/9bdac4a0
Branch: refs/heads/LOG4J-1181
Commit: 9bdac4a085dbc54f90bea549e6238b36e64c506d
Parents: 6072936
Author: Mikael Ståldal <mi...@magine.com>
Authored: Thu Oct 29 16:32:40 2015 +0100
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Thu Oct 29 16:32:40 2015 +0100
----------------------------------------------------------------------
log4j-scala_2.10/pom.xml | 255 +++++++++++++++++++
.../org/apache/logging/log4j/scala/Logger.scala | 211 +++++++++++++++
.../logging/log4j/scala/LoggerMacro.scala | 214 ++++++++++++++++
.../apache/logging/log4j/scala/Logging.scala | 10 +
.../logging/log4j/scala/LoggerMacro.scala | 5 +-
pom.xml | 1 +
6 files changed, 692 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9bdac4a0/log4j-scala_2.10/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-scala_2.10/pom.xml b/log4j-scala_2.10/pom.xml
new file mode 100644
index 0000000..290f12c
--- /dev/null
+++ b/log4j-scala_2.10/pom.xml
@@ -0,0 +1,255 @@
+<?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.10</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.10</projectDir>
+ <scala.version>2.10.6</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>
+ <version>3.2.2</version>
+ <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 © {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/9bdac4a0/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
----------------------------------------------------------------------
diff --git a/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logger.scala b/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logger.scala
new file mode 100644
index 0000000..63cce4d
--- /dev/null
+++ b/log4j-scala_2.10/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/9bdac4a0/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
----------------------------------------------------------------------
diff --git a/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala b/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
new file mode 100644
index 0000000..e4d9d60
--- /dev/null
+++ b/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/LoggerMacro.scala
@@ -0,0 +1,214 @@
+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
+
+import scala.reflect.macros.Context
+
+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/9bdac4a0/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
----------------------------------------------------------------------
diff --git a/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logging.scala b/log4j-scala_2.10/src/main/scala/org/apache/logging/log4j/scala/Logging.scala
new file mode 100644
index 0000000..0b3d03d
--- /dev/null
+++ b/log4j-scala_2.10/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/9bdac4a0/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
index e8dfb3a..22ef1c6 100644
--- 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
@@ -5,11 +5,8 @@ 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
+import scala.reflect.macros.whitebox.Context
-//noinspection ScalaDeprecation
private object LoggerMacro {
type LoggerContext = Context { type PrefixType = Logger }
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9bdac4a0/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f1cd252..218481f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1167,6 +1167,7 @@
<module>log4j-iostreams</module>
<module>log4j-jul</module>
<module>log4j-liquibase</module>
+ <module>log4j-scala_2.10</module>
<module>log4j-scala_2.11</module>
</modules>
<profiles>