Do we want a package-info.java in the Jetty package, like in the Tomcat
package?
And you should probably add a section about Jetty integraion in
log4j-appserver/src/site/markdown/index.md.vm
On 2017-11-11 23:43, Gary Gregory 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>