Sure. Look at TomcatLogger. It does exactly what you are trying to do. Ralph
> On Nov 11, 2017, at 2:02 PM, Gary Gregory <garydgreg...@gmail.com> wrote: > > The Javadoc for Log4j's LoggerAdapter says "This registry should not be > used for Log4j Loggers; it is instead used for creating bridges to other > external log systems.". > > In this case we are not bridging TO another log system. We are plugging > INTO Jetty's log system and subclassing Jetty's own LoggerAdapter class > (out convenience.) > > Further thoughts? > > Gary > > On Fri, Nov 10, 2017 at 9:25 PM, Matt Sicker <boa...@gmail.com> wrote: > >> IIRC, the easiest way to support it might be to use >> https://logging.apache.org/log4j/2.x/log4j-api/apidocs/ >> org/apache/logging/log4j/spi/AbstractLoggerAdapter.html >> >> On 10 November 2017 at 22:16, Gary Gregory <garydgreg...@gmail.com> wrote: >> >>> I think you are correct... >>> >>> Gary >>> >>> On Fri, Nov 10, 2017 at 6:59 PM, Matt Sicker <boa...@gmail.com> wrote: >>> >>>> Wouldn't this implementation contain incorrect caller location >>> information? >>>> >>>> On 10 November 2017 at 19:25, <ggreg...@apache.org> wrote: >>>> >>>>> Repository: logging-log4j2 >>>>> Updated Branches: >>>>> refs/heads/master aad2f132b -> 7d52f131e >>>>> >>>>> >>>>> [LOG4J2-2114] Provide a native Log4j 2 implementation of Eclipse >>> Jetty's >>>>> org.eclipse.jetty.util.log.Logger. >>>>> >>>>> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo >>>>> Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/ >>>>> commit/7d52f131 >>>>> Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/ >>>> 7d52f131 >>>>> Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/ >>>> 7d52f131 >>>>> >>>>> Branch: refs/heads/master >>>>> Commit: 7d52f131ec1e000834bcb40343f3f2d41805c75a >>>>> Parents: aad2f13 >>>>> Author: Gary Gregory <ggreg...@apache.org> >>>>> Authored: Fri Nov 10 18:25:47 2017 -0700 >>>>> Committer: Gary Gregory <ggreg...@apache.org> >>>>> Committed: Fri Nov 10 18:25:47 2017 -0700 >>>>> >>>>> ------------------------------------------------------------ >> ---------- >>>>> log4j-appserver/pom.xml | 8 + >>>>> .../log4j/appserver/jetty/Log4j2Logger.java | 184 >>>> +++++++++++++++++++ >>>>> src/changes/changes.xml | 3 + >>>>> 3 files changed, 195 insertions(+) >>>>> ------------------------------------------------------------ >> ---------- >>>>> >>>>> >>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ >>>>> 7d52f131/log4j-appserver/pom.xml >>>>> ------------------------------------------------------------ >> ---------- >>>>> diff --git a/log4j-appserver/pom.xml b/log4j-appserver/pom.xml >>>>> index e96b1fc..6acd77b 100644 >>>>> --- a/log4j-appserver/pom.xml >>>>> +++ b/log4j-appserver/pom.xml >>>>> @@ -34,6 +34,7 @@ >>>>> <docLabel>Web Documentation</docLabel> >>>>> <projectDir>/log4j-appserver</projectDir> >>>>> <tomcat.version>8.5.20</tomcat.version> >>>>> + <jetty.version>8.2.0.v20160908</jetty.version> <!-- Jetty 9 >>>>> requires Java 8 --> >>>>> <module.name>org.apache.logging.log4j.appserver</module.name> >>>>> </properties> >>>>> >>>>> @@ -56,6 +57,7 @@ >>>>> <groupId>org.apache.tomcat</groupId> >>>>> <artifactId>tomcat-catalina</artifactId> >>>>> <version>${tomcat.version}</version> >>>>> + <scope>provided</scope> >>>>> <exclusions> >>>>> <exclusion> >>>>> <groupId>org.apache.tomcat</groupId> >>>>> @@ -71,6 +73,12 @@ >>>>> </exclusion> >>>>> </exclusions> >>>>> </dependency> >>>>> + <dependency> >>>>> + <groupId>org.eclipse.jetty</groupId> >>>>> + <artifactId>jetty-util</artifactId> >>>>> + <version>${jetty.version}</version> >>>>> + <scope>provided</scope> >>>>> + </dependency> >>>>> >>>>> <!-- Test dependencies --> >>>>> <dependency> >>>>> >>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ >>>>> 7d52f131/log4j-appserver/src/main/java/org/apache/logging/ >>>>> log4j/appserver/jetty/Log4j2Logger.java >>>>> ------------------------------------------------------------ >> ---------- >>>>> diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/ >>>>> appserver/jetty/Log4j2Logger.java b/log4j-appserver/src/main/ >>>>> java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java >>>>> new file mode 100644 >>>>> index 0000000..7d1ce14 >>>>> --- /dev/null >>>>> +++ b/log4j-appserver/src/main/java/org/apache/logging/log4j/ >>>>> appserver/jetty/Log4j2Logger.java >>>>> @@ -0,0 +1,184 @@ >>>>> +/* >>>>> + * 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. >>>>> + */ >>>>> + >>>>> +package org.apache.logging.log4j.appserver.jetty; >>>>> + >>>>> +import org.apache.logging.log4j.LogManager; >>>>> +import org.eclipse.jetty.util.log.AbstractLogger; >>>>> +import org.eclipse.jetty.util.log.Logger; >>>>> + >>>>> +/** >>>>> + * Provides a native Apache Log4j 2 for Jetty logging. >>>>> + */ >>>>> +public class Log4j2Logger extends AbstractLogger { >>>>> + >>>>> + private final org.apache.logging.log4j.Logger logger; >>>>> + >>>>> + private final String name; >>>>> + >>>>> + public Log4j2Logger(final String name) { >>>>> + super(); >>>>> + this.name = name; >>>>> + this.logger = LogManager.getLogger(name); >>>>> + } >>>>> + >>>>> + public Log4j2Logger() { >>>>> + this(""); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log. >> Logger#debug(java.lang.String, >>>>> java.lang.Object[]) >>>>> + */ >>>>> + @Override >>>>> + public void debug(final String msg, final Object... args) { >>>>> + logger.debug(msg, args); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log. >> Logger#debug(java.lang.String, >>>>> java.lang.Throwable) >>>>> + */ >>>>> + @Override >>>>> + public void debug(final String msg, final Throwable thrown) { >>>>> + logger.debug(msg, thrown); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log.Logger#debug(java.lang. >>>> Throwable) >>>>> + */ >>>>> + @Override >>>>> + public void debug(final Throwable thrown) { >>>>> + logger.debug(thrown); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log.Logger#getName() >>>>> + */ >>>>> + @Override >>>>> + public String getName() { >>>>> + return name; >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log.Logger#ignore(java.lang. >>>> Throwable) >>>>> + */ >>>>> + @Override >>>>> + public void ignore(final Throwable ignored) { >>>>> + // TODO Auto-generated method stub >>>>> + >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log. >> Logger#info(java.lang.String, >>>>> java.lang.Object[]) >>>>> + */ >>>>> + @Override >>>>> + public void info(final String msg, final Object... args) { >>>>> + logger.info(msg, args); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log. >> Logger#info(java.lang.String, >>>>> java.lang.Throwable) >>>>> + */ >>>>> + @Override >>>>> + public void info(final String msg, final Throwable thrown) { >>>>> + logger.info(msg, thrown); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log.Logger#info(java.lang. >>> Throwable) >>>>> + */ >>>>> + @Override >>>>> + public void info(final Throwable thrown) { >>>>> + logger.info(thrown); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log.Logger#isDebugEnabled() >>>>> + */ >>>>> + @Override >>>>> + public boolean isDebugEnabled() { >>>>> + return logger.isDebugEnabled(); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log. >> AbstractLogger#newLogger(java. >>>>> lang.String) >>>>> + */ >>>>> + @Override >>>>> + protected Logger newLogger(final String fullname) { >>>>> + return new Log4j2Logger(fullname); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log.Logger#setDebugEnabled( >>> boolean) >>>>> + */ >>>>> + @Override >>>>> + public void setDebugEnabled(final boolean enabled) { >>>>> + warn("setDebugEnabled not implemented"); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log. >> Logger#warn(java.lang.String, >>>>> java.lang.Object[]) >>>>> + */ >>>>> + @Override >>>>> + public void warn(final String msg, final Object... args) { >>>>> + logger.warn(msg, args); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log. >> Logger#warn(java.lang.String, >>>>> java.lang.Throwable) >>>>> + */ >>>>> + @Override >>>>> + public void warn(final String msg, final Throwable thrown) { >>>>> + logger.warn(msg, thrown); >>>>> + } >>>>> + >>>>> + /* >>>>> + * (non-Javadoc) >>>>> + * >>>>> + * @see org.eclipse.jetty.util.log.Logger#warn(java.lang. >>> Throwable) >>>>> + */ >>>>> + @Override >>>>> + public void warn(final Throwable thrown) { >>>>> + logger.warn(thrown); >>>>> + } >>>>> + >>>>> +} >>>>> >>>>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ >>>>> 7d52f131/src/changes/changes.xml >>>>> ------------------------------------------------------------ >> ---------- >>>>> diff --git a/src/changes/changes.xml b/src/changes/changes.xml >>>>> index 2bcefb2..070e4a1 100644 >>>>> --- a/src/changes/changes.xml >>>>> +++ b/src/changes/changes.xml >>>>> @@ -37,6 +37,9 @@ >>>>> <action issue="LOG4J2-2103" dev="mikes" type="add"> >>>>> XML encoding for PatternLayout. >>>>> </action> >>>>> + <action issue="LOG4J2-2114" dev="ggregory" type="add"> >>>>> + Provide a native Log4j 2 implementation of Eclipse Jetty's >>>>> org.eclipse.jetty.util.log.Logger. >>>>> + </action> >>>>> <action issue="LOG4J2-1203" dev="mikes" type="add" >>> due-to="Robert >>>>> Turner"> >>>>> Allow filtering of line breaks in layout pattern. >>>>> </action> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>>> >>> >> >> >> >> -- >> Matt Sicker <boa...@gmail.com> >>