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 © > {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.