Will the packages also have a version in the name? Gary On Oct 29, 2015 2:28 AM, "Mikael Ståldal" <[email protected]> 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 <[email protected]> > 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: <[email protected]> >> Date: Wed, Oct 28, 2015 at 10:08 AM >> Subject: logging-log4j2 git commit: Scala 2.11 logging >> To: [email protected] >> >> >> 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 <[email protected]> >> Authored: Wed Oct 28 18:07:39 2015 +0100 >> Committer: Mikael Ståldal <[email protected]> >> 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: [email protected] | [email protected] >> 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* > [email protected] > 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. >
