You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ce...@apache.org on 2005/04/29 11:55:50 UTC
cvs commit: logging-log4j/src/java/org/slf4j LoggerFactory.java LoggerFactoryAdapter.java ULogger.java
ceki 2005/04/29 02:55:50
Added: src/java/org/slf4j Tag: v1_2-branch LoggerFactory.java
LoggerFactoryAdapter.java ULogger.java
Log:
Added missing source files required from gump intergration.
PR:
Obtained from:
Submitted by:
Reviewed by:
Revision Changes Path
No revision
No revision
1.1.2.1 +84 -84 logging-log4j/src/java/org/slf4j/LoggerFactory.java
Index: LoggerFactory.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/slf4j/LoggerFactory.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -r1.1 -r1.1.2.1
--- LoggerFactory.java 28 Apr 2005 15:59:09 -0000 1.1
+++ LoggerFactory.java 29 Apr 2005 09:55:50 -0000 1.1.2.1
@@ -1,84 +1,84 @@
-/*
- * Copyright (c) 2004-2005 SLF4J.ORG
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
- * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- *
- */
-
-package org.slf4j;
-
-// WARNING
-// WARNING Modifications MUST be made to the original file found at
-// WARNING $SLF4J_HOME/src/filtered-java/org/slf4j/LoggerFactory.java
-// WARNING
-
-/**
- * The <code>LoggerFactory</code> can produce Loggers for various logging APIs,
- * most notably for log4j, JDK 1.4 logging. Other implemenations such as
- * {@link org.slf4j.impl.NOPLogger NOPLogger} and
- * {@link org.slf4j.impl.SimpleLogger SimpleLogger} are also supported.
- *
- * @author Ceki Gülcü
- */
-public class LoggerFactory {
- static LoggerFactoryAdapter adapter;
-
- //
- // WARNING Modify the original in
- // $SLF4J_HOME/src/filtered-java/org/slf4j/
-
- static {
- String adapterClassStr = "org.slf4j.impl.Log4jLoggerFA";
- System.out.println("SLF4J built for "+adapterClassStr);
- try {
- adapter = new org.slf4j.impl.Log4jLoggerFA();
- } catch (Exception e) {
- // unless there was a problem with the build or the JVM we will never
- // get exceptions
- System.err.println(
- "Could not instantiate instance of class [" + adapterClassStr + "]");
- e.printStackTrace();
- }
- }
-
- public static ULogger getLogger(String name) {
- return adapter.getLogger(name);
- }
-
- public static ULogger getLogger(String domainName, String subDomainName) {
- return adapter.getLogger(domainName, subDomainName);
- }
-
- public static ULogger getLogger(Class clazz) {
- return adapter.getLogger(clazz.getName());
- }
-
- public static ULogger getLogger(Class clazz, String subDomainName) {
- return adapter.getLogger(clazz.getName(), subDomainName);
- }
-}
+/*
+ * Copyright (c) 2004-2005 SLF4J.ORG
+ *
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
+ * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
+ *
+ */
+
+package org.slf4j;
+
+// WARNING
+// WARNING Modifications MUST be made to the original file found at
+// WARNING $SLF4J_HOME/src/filtered-java/org/slf4j/LoggerFactory.java
+// WARNING
+
+/**
+ * The <code>LoggerFactory</code> can produce Loggers for various logging APIs,
+ * most notably for log4j, JDK 1.4 logging. Other implemenations such as
+ * {@link org.slf4j.impl.NOPLogger NOPLogger} and
+ * {@link org.slf4j.impl.SimpleLogger SimpleLogger} are also supported.
+ *
+ * @author Ceki Gülcü
+ */
+public class LoggerFactory {
+ static LoggerFactoryAdapter adapter;
+
+ //
+ // WARNING Modify the original in
+ // $SLF4J_HOME/src/filtered-java/org/slf4j/
+
+ static {
+ String adapterClassStr = "org.slf4j.impl.Log4jLoggerFA";
+ System.out.println("SLF4J built for "+adapterClassStr);
+ try {
+ adapter = new org.slf4j.impl.Log4jLoggerFA();
+ } catch (Exception e) {
+ // unless there was a problem with the build or the JVM we will never
+ // get exceptions
+ System.err.println(
+ "Could not instantiate instance of class [" + adapterClassStr + "]");
+ e.printStackTrace();
+ }
+ }
+
+ public static ULogger getLogger(String name) {
+ return adapter.getLogger(name);
+ }
+
+ public static ULogger getLogger(String domainName, String subDomainName) {
+ return adapter.getLogger(domainName, subDomainName);
+ }
+
+ public static ULogger getLogger(Class clazz) {
+ return adapter.getLogger(clazz.getName());
+ }
+
+ public static ULogger getLogger(Class clazz, String subDomainName) {
+ return adapter.getLogger(clazz.getName(), subDomainName);
+ }
+}
1.1.2.1 +60 -60 logging-log4j/src/java/org/slf4j/LoggerFactoryAdapter.java
Index: LoggerFactoryAdapter.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/slf4j/LoggerFactoryAdapter.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -r1.1 -r1.1.2.1
--- LoggerFactoryAdapter.java 28 Apr 2005 15:59:09 -0000 1.1
+++ LoggerFactoryAdapter.java 29 Apr 2005 09:55:50 -0000 1.1.2.1
@@ -1,60 +1,60 @@
-/*
- * Copyright (c) 2004-2005 SLF4J.ORG
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
- * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- *
- */
-
-package org.slf4j;
-
-/**
- * LoggerFactoryAdapter interface is used internally by {@link
- * LoggerFactory}.
- *
- * <p>Only developers wishing to write new UGLI adapters need to worry
- * about this interface.
- *
- * @author Ceki Gülcü
- *
- */
-public interface LoggerFactoryAdapter {
-
- /**
- * Return the appropriate named {@link ULogger} instance.
- */
- public ULogger getLogger(String name);
-
- /**
- * Return a {@link ULogger} instance in <code>domain</code>, <code>subDomain</code>.
- *
- * @param domain
- * @param subDomain
- * @return ULogger instance
- */
- public ULogger getLogger(String domain, String subDomain);
-}
+/*
+ * Copyright (c) 2004-2005 SLF4J.ORG
+ *
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
+ * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
+ *
+ */
+
+package org.slf4j;
+
+/**
+ * LoggerFactoryAdapter interface is used internally by {@link
+ * LoggerFactory}.
+ *
+ * <p>Only developers wishing to write new UGLI adapters need to worry
+ * about this interface.
+ *
+ * @author Ceki Gülcü
+ *
+ */
+public interface LoggerFactoryAdapter {
+
+ /**
+ * Return the appropriate named {@link ULogger} instance.
+ */
+ public ULogger getLogger(String name);
+
+ /**
+ * Return a {@link ULogger} instance in <code>domain</code>, <code>subDomain</code>.
+ *
+ * @param domain
+ * @param subDomain
+ * @return ULogger instance
+ */
+ public ULogger getLogger(String domain, String subDomain);
+}
1.1.2.1 +104 -104 logging-log4j/src/java/org/slf4j/ULogger.java
Index: ULogger.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/slf4j/ULogger.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -r1.1 -r1.1.2.1
--- ULogger.java 28 Apr 2005 15:59:09 -0000 1.1
+++ ULogger.java 29 Apr 2005 09:55:50 -0000 1.1.2.1
@@ -1,104 +1,104 @@
-/*
- * Copyright (c) 2004-2005 SLF4J.ORG
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
- * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- *
- */
-
-package org.slf4j;
-
-/**
- *
- * The main user inteface to logging. It is expected that logging
- * takes places through concerete implemetations of the ULogger
- * interface.
- *
- * @author Ceki Gülcü
- */
-public interface ULogger {
-
- /**
- * Is the logger instance enabled for the DEBUG level?
- * @return True if this ULogger is enabled for the DEBUG level,
- * false otherwise.
- */
- public boolean isDebugEnabled();
-
- /**
- * Log a message object with the DEBUG level.
- * @param msg - the message object to be logged
- */
- public void debug(Object msg);
-
-
- /**
- * Log a parameterized message object at the DEBUG level.
- *
- * <p>This form is useful in avoiding the superflous object creation
- * problem when invoking this method while it is disabled.
- * </p>
- * @param parameterizedMsg - the parameterized message object
- * @param param1 - the parameter
- */
- public void debug(Object parameterizedMsg, Object param1);
-
- /**
- * Log a parameterized message object at the DEBUG level.
- *
- * <p>This form is useful in avoiding the superflous object creation
- * problem when invoking this method while it is disabled.
- * </p>
- * @param parameterizedMsg - the parameterized message object
- * @param param1 - the first parameter
- * @param param2 - the second parameter
- */
- public void debug(String parameterizedMsg, Object param1, Object param2);
- public void debug(Object msg, Throwable t);
-
-
- public boolean isInfoEnabled();
- public void info(Object msg);
- public void info(Object parameterizedMsg, Object param1);
- public void info(String parameterizedMsg, Object param1, Object param2);
- public void info(Object msg, Throwable t);
-
-
- public boolean isWarnEnabled();
- public void warn(Object msg);
- public void warn(Object parameterizedMsg, Object param1);
- public void warn(String parameterizedMsg, Object param1, Object param2);
- public void warn(Object msg, Throwable t);
-
-
- public boolean isErrorEnabled();
- public void error(Object msg);
- public void error(Object parameterizedMsg, Object param1);
- public void error(String parameterizedMsg, Object param1, Object param2);
- public void error(Object msg, Throwable t);
-
-}
+/*
+ * Copyright (c) 2004-2005 SLF4J.ORG
+ *
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
+ * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
+ *
+ */
+
+package org.slf4j;
+
+/**
+ *
+ * The main user inteface to logging. It is expected that logging
+ * takes places through concerete implemetations of the ULogger
+ * interface.
+ *
+ * @author Ceki Gülcü
+ */
+public interface ULogger {
+
+ /**
+ * Is the logger instance enabled for the DEBUG level?
+ * @return True if this ULogger is enabled for the DEBUG level,
+ * false otherwise.
+ */
+ public boolean isDebugEnabled();
+
+ /**
+ * Log a message object with the DEBUG level.
+ * @param msg - the message object to be logged
+ */
+ public void debug(Object msg);
+
+
+ /**
+ * Log a parameterized message object at the DEBUG level.
+ *
+ * <p>This form is useful in avoiding the superflous object creation
+ * problem when invoking this method while it is disabled.
+ * </p>
+ * @param parameterizedMsg - the parameterized message object
+ * @param param1 - the parameter
+ */
+ public void debug(Object parameterizedMsg, Object param1);
+
+ /**
+ * Log a parameterized message object at the DEBUG level.
+ *
+ * <p>This form is useful in avoiding the superflous object creation
+ * problem when invoking this method while it is disabled.
+ * </p>
+ * @param parameterizedMsg - the parameterized message object
+ * @param param1 - the first parameter
+ * @param param2 - the second parameter
+ */
+ public void debug(String parameterizedMsg, Object param1, Object param2);
+ public void debug(Object msg, Throwable t);
+
+
+ public boolean isInfoEnabled();
+ public void info(Object msg);
+ public void info(Object parameterizedMsg, Object param1);
+ public void info(String parameterizedMsg, Object param1, Object param2);
+ public void info(Object msg, Throwable t);
+
+
+ public boolean isWarnEnabled();
+ public void warn(Object msg);
+ public void warn(Object parameterizedMsg, Object param1);
+ public void warn(String parameterizedMsg, Object param1, Object param2);
+ public void warn(Object msg, Throwable t);
+
+
+ public boolean isErrorEnabled();
+ public void error(Object msg);
+ public void error(Object parameterizedMsg, Object param1);
+ public void error(String parameterizedMsg, Object param1, Object param2);
+ public void error(Object msg, Throwable t);
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org
Re: Why does SLF4J need to be in log4j, particularly logj4-12
branch?
Posted by Ceki Gülcü <ce...@qos.ch>.
Have you bothered to look at previous threads regarding the subject?
At 17:22 4/29/2005, you wrote:
>So why does SLF4J need to be integrated into log4j 1.2.x (other than to
>fix the Gump failure)? Shouldn't SLF4J be able to work with existing
>logging implementations without their needing to be modified?
>
>
>On Apr 29, 2005, at 4:55 AM, ceki@apache.org wrote:
>
>>ceki 2005/04/29 02:55:50
>>
>> Added: src/java/org/slf4j Tag: v1_2-branch LoggerFactory.java
>> LoggerFactoryAdapter.java ULogger.java
>> Log:
>> Added missing source files required from gump intergration.
>
>--
>Ceki Gülcü
>
> The complete log4j manual: http://www.qos.ch/log4j/
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org
Why does SLF4J need to be in log4j, particularly logj4-12 branch?
Posted by Curt Arnold <ca...@houston.rr.com>.
So why does SLF4J need to be integrated into log4j 1.2.x (other than to
fix the Gump failure)? Shouldn't SLF4J be able to work with existing
logging implementations without their needing to be modified?
On Apr 29, 2005, at 4:55 AM, ceki@apache.org wrote:
> ceki 2005/04/29 02:55:50
>
> Added: src/java/org/slf4j Tag: v1_2-branch LoggerFactory.java
> LoggerFactoryAdapter.java ULogger.java
> Log:
> Added missing source files required from gump intergration.
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org