Are you planning on fixing this?

Ralph

> On Nov 11, 2017, at 5:15 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote:
> 
> Because the caller of newLogger(name) is AbstractLogger its ClassLoader will 
> always be used. You need the ClassLoader of the caller of getLogger().
> 
> Ralph
> 
>> On Nov 11, 2017, at 3:43 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
>> 
>> Please code review git master. I'm not sure I have the class loader right.
>> 
>> Gary
>> 
>> On Sat, Nov 11, 2017 at 2:54 PM, Ralph Goers <ralph.go...@dslextreme.com>
>> wrote:
>> 
>>> Oh, but you probably don’t want to extend AbstractLogger. You really want
>>> the FQCN of the caller to be able to identify the ClassLoader and
>>> LoggerContext to use and you won’t get that from AbstractLogger’s getLogger
>>> method.
>>> 
>>> Ralph
>>> 
>>>> On Nov 11, 2017, at 2:45 PM, Ralph Goers <ralph.go...@dslextreme.com>
>>> wrote:
>>>> 
>>>> 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>
>>>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>>> 
> 
> 
> 


Reply via email to