The Java package will be the same (org.apache.logging.log4j.scala), no version in there.
On Thu, Oct 29, 2015 at 5:06 PM, Gary Gregory <[email protected]> wrote: > 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. >> > -- [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.
