diff options
author | Luck <git@lucko.me> | 2024-10-26 11:08:49 +0100 |
---|---|---|
committer | Luck <git@lucko.me> | 2024-10-26 11:08:49 +0100 |
commit | ef507b147a8a0c7d209b62303de50fb895851c82 (patch) | |
tree | 5598bacf0dd887914921c0186cc0c3d48df7ab1d /spark-common/src/main/java/me/lucko/spark/common/util | |
parent | c58ddcfc37971178087d7637979a2c17e9a44d09 (diff) | |
download | spark-ef507b147a8a0c7d209b62303de50fb895851c82.tar.gz spark-ef507b147a8a0c7d209b62303de50fb895851c82.tar.bz2 spark-ef507b147a8a0c7d209b62303de50fb895851c82.zip |
Improve error logging in various places
Diffstat (limited to 'spark-common/src/main/java/me/lucko/spark/common/util')
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/util/SparkThreadFactory.java | 5 | ||||
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/util/log/Logger.java | 80 | ||||
-rw-r--r-- | spark-common/src/main/java/me/lucko/spark/common/util/log/SparkStaticLogger.java (renamed from spark-common/src/main/java/me/lucko/spark/common/util/SparkStaticLogger.java) | 22 |
3 files changed, 89 insertions, 18 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/SparkThreadFactory.java b/spark-common/src/main/java/me/lucko/spark/common/util/SparkThreadFactory.java index 1d6971b..99e50ff 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/util/SparkThreadFactory.java +++ b/spark-common/src/main/java/me/lucko/spark/common/util/SparkThreadFactory.java @@ -20,6 +20,8 @@ package me.lucko.spark.common.util; +import me.lucko.spark.common.util.log.SparkStaticLogger; + import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; @@ -27,8 +29,7 @@ import java.util.logging.Level; public class SparkThreadFactory implements ThreadFactory { public static final Thread.UncaughtExceptionHandler EXCEPTION_HANDLER = (t, e) -> { - SparkStaticLogger.log(Level.SEVERE, "Uncaught exception thrown by thread " + t.getName()); - e.printStackTrace(); + SparkStaticLogger.log(Level.SEVERE, "Uncaught exception thrown by thread " + t.getName(), e); }; private static final AtomicInteger poolNumber = new AtomicInteger(1); diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/log/Logger.java b/spark-common/src/main/java/me/lucko/spark/common/util/log/Logger.java new file mode 100644 index 0000000..1f14787 --- /dev/null +++ b/spark-common/src/main/java/me/lucko/spark/common/util/log/Logger.java @@ -0,0 +1,80 @@ +/* + * This file is part of spark. + * + * Copyright (c) lucko (Luck) <luck@lucko.me> + * Copyright (c) contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +package me.lucko.spark.common.util.log; + +import java.util.logging.Level; + +public interface Logger { + + /** + * Print to the plugin logger. + * + * @param level the log level + * @param msg the message + */ + void log(Level level, String msg); + + /** + * Print to the plugin logger. + * + * @param level the log level + * @param msg the message + * @param throwable the throwable + */ + void log(Level level, String msg, Throwable throwable); + + /** + * A fallback logger + */ + Logger FALLBACK = new Logger() { + @Override + public void log(Level level, String msg) { + if (level.intValue() >= 1000) { + System.err.println(msg); + } else { + System.out.println(msg); + } + } + + @Override + public void log(Level level, String msg, Throwable throwable) { + if (isSevere(level)) { + System.err.println(msg); + if (throwable != null) { + throwable.printStackTrace(System.err); + } + } else { + System.out.println(msg); + if (throwable != null) { + throwable.printStackTrace(System.out); + } + } + } + }; + + static boolean isSevere(Level level) { + return level.intValue() >= 1000; + } + + static boolean isWarning(Level level) { + return level.intValue() >= 900; + } +} diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/SparkStaticLogger.java b/spark-common/src/main/java/me/lucko/spark/common/util/log/SparkStaticLogger.java index eb5f316..3c118fa 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/util/SparkStaticLogger.java +++ b/spark-common/src/main/java/me/lucko/spark/common/util/log/SparkStaticLogger.java @@ -18,7 +18,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package me.lucko.spark.common.util; +package me.lucko.spark.common.util.log; import java.util.logging.Level; @@ -32,7 +32,7 @@ import java.util.logging.Level; public enum SparkStaticLogger { ; - private static Logger logger = null; + private static Logger logger = Logger.FALLBACK; public synchronized static void setLogger(Logger logger) { if (SparkStaticLogger.logger == null) { @@ -40,22 +40,12 @@ public enum SparkStaticLogger { } } - public static void log(Level level, String msg) { - Logger logger = SparkStaticLogger.logger; - if (logger == null) { - if (level.intValue() >= 1000) { - System.err.println(msg); - } else { - System.out.println(msg); - } - return; - } - - logger.log(level, msg); + public static void log(Level level, String msg, Throwable throwable) { + logger.log(level, msg, throwable); } - public interface Logger { - void log(Level level, String msg); + public static void log(Level level, String msg) { + logger.log(level, msg); } } |