From 22e0aeab4a5d85b875e5ff3d3bec71e7e990d348 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Sat, 3 Jan 2026 15:25:58 -0800 Subject: [PATCH] Remove log4j and log4j2 support. Projects can make and configure their own shim, but Java logging is a better default and log4j has been deprecated six ways to Sunday. --- pom.xml | 14 ----- .../com/samskivert/util/Log4J2Logger.java | 56 ------------------- .../java/com/samskivert/util/Log4JLogger.java | 56 ------------------- src/main/java/com/samskivert/util/Logger.java | 34 ++--------- 4 files changed, 4 insertions(+), 156 deletions(-) delete mode 100644 src/main/java/com/samskivert/util/Log4J2Logger.java delete mode 100644 src/main/java/com/samskivert/util/Log4JLogger.java diff --git a/pom.xml b/pom.xml index 5ead1e73..ba6afdb9 100644 --- a/pom.xml +++ b/pom.xml @@ -44,20 +44,6 @@ 6.0.0 provided - - log4j - log4j - 1.2.16 - compile - true - - - org.apache.logging.log4j - log4j-api - 2.0-rc2 - compile - true - javax.mail mail diff --git a/src/main/java/com/samskivert/util/Log4J2Logger.java b/src/main/java/com/samskivert/util/Log4J2Logger.java deleted file mode 100644 index a07d35be..00000000 --- a/src/main/java/com/samskivert/util/Log4J2Logger.java +++ /dev/null @@ -1,56 +0,0 @@ -// -// samskivert library - useful routines for java programs -// Copyright (C) 2001-2012 Michael Bayne, et al. -// http://github.com/samskivert/samskivert/blob/master/COPYING - -package com.samskivert.util; - -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.LogManager; - -/** - * A factory for creating log4j2 logger implementations. - */ -public class Log4J2Logger implements Logger.Factory -{ - // from interface Logger.Factory - public void init () - { - } - - // from interface Logger.Factory - public Logger getLogger (String name) - { - return new Impl(LogManager.getLogger(name)); - } - - // from interface Logger.Factory - public Logger getLogger (Class clazz) - { - return new Impl(LogManager.getLogger(clazz)); - } - - protected static class Impl extends Logger - { - public Impl (org.apache.logging.log4j.Logger impl) - { - _impl = impl; - } - - @Override // from Logger - protected boolean shouldLog (int levIdx) - { - return _impl.isEnabled(LEVELS[levIdx]); - } - - @Override // from Logger - protected void doLog (int levIdx, String formatted, Throwable throwable) - { - _impl.log(LEVELS[levIdx], formatted, throwable); - } - - protected final org.apache.logging.log4j.Logger _impl; - protected static final Level[] LEVELS = { - Level.DEBUG, Level.INFO, Level.WARN, Level.ERROR }; - } -} diff --git a/src/main/java/com/samskivert/util/Log4JLogger.java b/src/main/java/com/samskivert/util/Log4JLogger.java deleted file mode 100644 index f1800a87..00000000 --- a/src/main/java/com/samskivert/util/Log4JLogger.java +++ /dev/null @@ -1,56 +0,0 @@ -// -// samskivert library - useful routines for java programs -// Copyright (C) 2001-2012 Michael Bayne, et al. -// http://github.com/samskivert/samskivert/blob/master/COPYING - -package com.samskivert.util; - -import org.apache.log4j.Level; - -/** - * A factory for creating log4j logger implementations. - */ -public class Log4JLogger implements Logger.Factory -{ - // from interface Logger.Factory - public void init () - { - } - - // from interface Logger.Factory - public Logger getLogger (String name) - { - return new Impl(org.apache.log4j.Logger.getLogger(name)); - } - - // from interface Logger.Factory - public Logger getLogger (Class clazz) - { - return getLogger(clazz.getName()); - } - - protected static class Impl extends Logger - { - public Impl (org.apache.log4j.Logger impl) - { - _impl = impl; - } - - @Override // from Logger - protected boolean shouldLog (int levIdx) - { - return _impl.isEnabledFor(LEVELS[levIdx]); - } - - @Override // from Logger - protected void doLog (int levIdx, String formatted, Throwable throwable) - { - _impl.log(_self, LEVELS[levIdx], formatted, throwable); - } - - protected final org.apache.log4j.Logger _impl; - protected final String _self = getClass().getName(); - protected static final Level[] LEVELS = { - Level.DEBUG, Level.INFO, Level.WARN, Level.ERROR }; - } -} diff --git a/src/main/java/com/samskivert/util/Logger.java b/src/main/java/com/samskivert/util/Logger.java index e9cbbdb4..8e6015af 100644 --- a/src/main/java/com/samskivert/util/Logger.java +++ b/src/main/java/com/samskivert/util/Logger.java @@ -10,9 +10,9 @@ package com.samskivert.util; * that they can be used in a larger project and easily be made to log to the logging framework in * use by that project. * - *

The default implementation uses log4j if it is available and falls back to the Java logging - * services if not. A specific (or custom) logging implementation can be configured like so: - *

-Dcom.samskivert.util.Logger=com.samskivert.util.Log4Logger
+ *

The default implementation uses the Java logging services. A specific (or custom) logging + * implementation can be configured like so: + *

-Dcom.samskivert.util.Logger=com.your.custom.Log4Logger
* *

One additional enhancement is the use of varargs log methods to allow for some handy * automatic formatting. The methods take a log message and list of zero or more additional @@ -166,36 +166,10 @@ public abstract class Logger { // if a custom class was specified as a system property, use that Factory factory = createConfiguredFactory(); - - // create and a log4j logger if the log4j configuration system property is set - try { - if (factory == null && System.getProperty("log4j.configuration") != null) { - factory = (Factory)Class.forName("com.samskivert.util.Log4JLogger"). - getDeclaredConstructor().newInstance(); - } - } catch (SecurityException se) { - // in a sandbox, no biggie - } catch (Throwable t) { - System.err.println("Unable to instantiate Log4JLogger: " + t); - } - - // create and a log4j2 logger if the log4j2 configuration system property is set - try { - if (factory == null && System.getProperty("log4j.configurationFile") != null) { - factory = (Factory)Class.forName("com.samskivert.util.Log4J2Logger"). - getDeclaredConstructor().newInstance(); - } - } catch (SecurityException se) { - // in a sandbox, no biggie - } catch (Throwable t) { - System.err.println("Unable to instantiate Log4J2Logger: " + t); - } - - // lastly, fall back to the Java logging system + // otherwise, use the Java logging system if (factory == null) { factory = new JDK14Logger(); } - // and finally configure our factory setFactory(factory); }