From: Adam Date: Sun, 4 Sep 2016 20:56:25 +0000 (-0400) Subject: Convert logging to slf4j, and logback X-Git-Url: https://jfr.im/git/irc/rizon/acid.git/commitdiff_plain/37e571ebaf42bebca8e87ce5fe3434500a8e5b79?ds=sidebyside;hp=f9efaa68aded90c1fcbc8a0007b60ecb22c1bc86 Convert logging to slf4j, and logback --- diff --git a/acid/pom.xml b/acid/pom.xml index dd18454..ecf70c6 100644 --- a/acid/pom.xml +++ b/acid/pom.xml @@ -15,6 +15,7 @@ 4.1.5.Final 1.7.21 + 1.1.7 @@ -38,16 +39,21 @@ netty-all ${netty.version} - + ch.qos.logback + logback-classic + ${logback.version} + + + ch.qos.logback + logback-core + ${logback.version} + junit junit diff --git a/acid/src/main/java/net/rizon/acid/commands/Access.java b/acid/src/main/java/net/rizon/acid/commands/Access.java index ee3fd1b..1614e37 100644 --- a/acid/src/main/java/net/rizon/acid/commands/Access.java +++ b/acid/src/main/java/net/rizon/acid/commands/Access.java @@ -1,26 +1,25 @@ package net.rizon.acid.commands; -import static net.rizon.acid.core.Acidictive.reply; - import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; - import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.AcidUser; import net.rizon.acid.core.Acidictive; +import static net.rizon.acid.core.Acidictive.reply; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Command; -import net.rizon.acid.core.Logger; import net.rizon.acid.core.Message; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Handles access to acid4 and its plugins. */ public class Access extends Command { - private static final Logger log = Logger.getLogger(Access.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Access.class); public Access() { @@ -92,7 +91,7 @@ public class Access extends Command } catch (SQLException ex) { - log.log(ex); + log.warn(null, ex); } return true; @@ -123,9 +122,9 @@ public class Access extends Command stmt.setString(2, x.getIdentNick()); Acidictive.acidcore_sql.executeThread(stmt); } - catch (Exception e) + catch (SQLException e) { - log.log(e); + log.warn(null, e); } reply(x, to, c, "Updated your certfp to \"" + args[1] + "\""); } @@ -180,7 +179,7 @@ public class Access extends Command } catch (SQLException e) { - log.log(e); + log.warn(null, e); return; } @@ -225,7 +224,7 @@ public class Access extends Command } catch (SQLException e) { - log.log(e); + log.warn(null, e); return; } @@ -261,7 +260,7 @@ public class Access extends Command } catch (SQLException e) { - log.log(e); + log.warn(null, e); } } @@ -301,7 +300,7 @@ public class Access extends Command } catch (SQLException e) { - log.log(e); + log.warn(null, e); return; } @@ -354,7 +353,7 @@ public class Access extends Command } catch (SQLException e) { - log.log(e); + log.warn(null, e); } } } diff --git a/acid/src/main/java/net/rizon/acid/commands/Plugins.java b/acid/src/main/java/net/rizon/acid/commands/Plugins.java index 7ab83e6..3866daa 100644 --- a/acid/src/main/java/net/rizon/acid/commands/Plugins.java +++ b/acid/src/main/java/net/rizon/acid/commands/Plugins.java @@ -1,17 +1,18 @@ package net.rizon.acid.commands; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.AcidUser; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Command; import net.rizon.acid.core.Plugin; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Plugins extends Command { + private static final Logger log = LoggerFactory.getLogger(Plugins.class); + public Plugins() { super(1, 2); @@ -43,11 +44,11 @@ public class Plugins extends Command { p = Plugin.loadPlugin(args[1]); Acidictive.reply(u, to, c, "Plugin " + p.getName() + " successfully loaded"); - AcidCore.log.log(Level.INFO, "PLUGINS LOAD for " + p.getName() + " from " + u.getNick()); + log.info("PLUGINS LOAD for " + p.getName() + " from " + u.getNick()); } catch (Exception ex) { - AcidCore.log.log(Level.WARNING, "Unable to load plugin " + args[1], ex); + log.warn("Unable to load plugin " + args[1], ex); Acidictive.reply(u, to, c, "Unable to load plugin " + args[1] + ": " + ex.getMessage()); } } @@ -69,7 +70,7 @@ public class Plugins extends Command p.remove(); Acidictive.reply(u, to, c, "Unloaded plugin " + p.getName()); - AcidCore.log.log(Level.INFO, "PLUGINS UNLOAD for " + p.getName() + " from " + u.getNick()); + log.info("PLUGINS UNLOAD for " + p.getName() + " from " + u.getNick()); } else if (args[0].equalsIgnoreCase("RELOAD") && args.length == 2) { @@ -92,11 +93,11 @@ public class Plugins extends Command { p = Plugin.loadPlugin(args[1]); Acidictive.reply(u, to, c, "Plugin " + p.getName() + " successfully reloaded"); - AcidCore.log.log(Level.INFO, "PLUGINS RELOAD for " + p.getName() + " from " + u.getNick()); + log.info("PLUGINS RELOAD for " + p.getName() + " from " + u.getNick()); } catch (Exception ex) { - AcidCore.log.log(Level.WARNING, "Unable to reload plugin " + args[1], ex); + log.warn("Unable to reload plugin " + args[1], ex); Acidictive.reply(u, to, c, "Unable to reload plugin " + args[1] + ": " + ex.getMessage()); } } diff --git a/acid/src/main/java/net/rizon/acid/commands/Shutdown.java b/acid/src/main/java/net/rizon/acid/commands/Shutdown.java index 6736f76..832eec0 100644 --- a/acid/src/main/java/net/rizon/acid/commands/Shutdown.java +++ b/acid/src/main/java/net/rizon/acid/commands/Shutdown.java @@ -1,23 +1,22 @@ package net.rizon.acid.commands; -import java.io.IOException; import java.util.Iterator; - import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.AcidUser; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Command; -import net.rizon.acid.core.Logger; import net.rizon.acid.core.Protocol; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Shuts acid4 down gracefully. */ public class Shutdown extends Command { - private static final Logger log = Logger.getLogger(Shutdown.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Shutdown.class); public Shutdown() { diff --git a/acid/src/main/java/net/rizon/acid/commands/Stats.java b/acid/src/main/java/net/rizon/acid/commands/Stats.java index 3ba7d08..85150dc 100644 --- a/acid/src/main/java/net/rizon/acid/commands/Stats.java +++ b/acid/src/main/java/net/rizon/acid/commands/Stats.java @@ -1,8 +1,8 @@ package net.rizon.acid.commands; -import static net.rizon.acid.core.Acidictive.reply; import net.rizon.acid.core.AcidUser; import net.rizon.acid.core.Acidictive; +import static net.rizon.acid.core.Acidictive.reply; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Command; import net.rizon.acid.core.Server; diff --git a/acid/src/main/java/net/rizon/acid/conf/Command.java b/acid/src/main/java/net/rizon/acid/conf/Command.java index 5ca7aff..d5b7a53 100644 --- a/acid/src/main/java/net/rizon/acid/conf/Command.java +++ b/acid/src/main/java/net/rizon/acid/conf/Command.java @@ -1,7 +1,6 @@ package net.rizon.acid.conf; import java.util.List; - import net.rizon.acid.core.Acidictive; public class Command implements Validatable diff --git a/acid/src/main/java/net/rizon/acid/conf/Config.java b/acid/src/main/java/net/rizon/acid/conf/Config.java index 6b57f10..55c8e09 100644 --- a/acid/src/main/java/net/rizon/acid/conf/Config.java +++ b/acid/src/main/java/net/rizon/acid/conf/Config.java @@ -3,7 +3,6 @@ package net.rizon.acid.conf; import java.io.FileInputStream; import java.io.InputStream; import java.util.List; - import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.CustomClassLoaderConstructor; diff --git a/acid/src/main/java/net/rizon/acid/core/AcidCore.java b/acid/src/main/java/net/rizon/acid/core/AcidCore.java index 4e35922..08bb473 100644 --- a/acid/src/main/java/net/rizon/acid/core/AcidCore.java +++ b/acid/src/main/java/net/rizon/acid/core/AcidCore.java @@ -8,13 +8,14 @@ import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioSocketChannel; import java.time.Duration; import java.util.Arrays; -import java.util.logging.Level; import net.rizon.acid.io.IRCMessage; import net.rizon.acid.io.Initializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public abstract class AcidCore { - public static final Logger log = Logger.getLogger(AcidCore.class.getName()); + private static final Logger log = LoggerFactory.getLogger(AcidCore.class); private static final Duration CONNECT_TIMEOUT = Duration.ofSeconds(5); @@ -78,7 +79,7 @@ public abstract class AcidCore } catch (InterruptedException ex) { - log.warning(ex.getMessage()); + log.warn(null, ex); } } @@ -96,7 +97,7 @@ public abstract class AcidCore Message m = Message.findMessage(message.getCommand()); if (m == null) { - log.log(Level.FINE, "Unknown message " + message.getCommand()); + log.debug("Unknown message " + message.getCommand()); return; } diff --git a/acid/src/main/java/net/rizon/acid/core/AcidUser.java b/acid/src/main/java/net/rizon/acid/core/AcidUser.java index 4076e5c..ebb2c7d 100644 --- a/acid/src/main/java/net/rizon/acid/core/AcidUser.java +++ b/acid/src/main/java/net/rizon/acid/core/AcidUser.java @@ -1,7 +1,6 @@ package net.rizon.acid.core; import java.util.List; - import net.rizon.acid.conf.Client; public class AcidUser extends User diff --git a/acid/src/main/java/net/rizon/acid/core/Acidictive.java b/acid/src/main/java/net/rizon/acid/core/Acidictive.java index 89aaffc..586eac7 100644 --- a/acid/src/main/java/net/rizon/acid/core/Acidictive.java +++ b/acid/src/main/java/net/rizon/acid/core/Acidictive.java @@ -3,8 +3,6 @@ package net.rizon.acid.core; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; -import java.io.IOException; -import java.net.UnknownHostException; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -13,8 +11,6 @@ import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.List; -import java.util.logging.Level; - import net.rizon.acid.conf.Client; import net.rizon.acid.conf.Config; import net.rizon.acid.sql.SQL; @@ -22,10 +18,13 @@ import net.rizon.acid.util.Blowfish; import net.rizon.acid.util.ClassLoader; import net.rizon.acid.util.CloakGenerator; import net.rizon.acid.util.Util; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Acidictive extends AcidCore { - private static final Logger log = Logger.getLogger(Acidictive.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Acidictive.class); + public static CloakGenerator cloakGenerator; public static Config conf; public static long startTime; @@ -45,7 +44,7 @@ public class Acidictive extends AcidCore { Version.load(); - log.log(Level.INFO, getVersion() + " (" + Version.getFullVersion() + ") starting up..."); + log.info(getVersion() + " (" + Version.getFullVersion() + ") starting up..."); try { @@ -53,7 +52,7 @@ public class Acidictive extends AcidCore } catch (Exception ex) { - log.log(Level.CONFIG, "Unable to start due to configuration problems", ex); + log.error("Unable to start due to configuration problems", ex); System.exit(1); } @@ -63,7 +62,7 @@ public class Acidictive extends AcidCore } catch (IllegalArgumentException ex) { - log.log(Level.SEVERE, ex.getMessage()); + log.error(null, ex); System.exit(1); } @@ -72,7 +71,7 @@ public class Acidictive extends AcidCore acidcore_sql = SQL.getConnection("acidcore"); if (acidcore_sql == null) { - log.log(Level.SEVERE, "Unable to get connection for `acidcore`"); + log.error("Unable to get connection for `acidcore`"); System.exit(-1); } @@ -87,11 +86,11 @@ public class Acidictive extends AcidCore try { Plugin p = Plugin.loadPlugin(s); - log.log(Level.INFO, "Loaded plugin " + p.getName()); + log.info("Loaded plugin " + p.getName()); } catch (Exception ex) { - log.log(Level.SEVERE, "Unable to load plugin " + s, ex); + log.error("Unable to load plugin " + s, ex); System.exit(-1); } } @@ -102,7 +101,7 @@ public class Acidictive extends AcidCore } catch (InterruptedException ex) { - log.log(Level.SEVERE, null, ex); + log.error(null, ex); } acidcore_sql.shutdown(); @@ -222,7 +221,7 @@ public class Acidictive extends AcidCore } catch (SQLException ex) { - log.log(Level.WARNING, "Unable to load certfp access", ex); + log.warn("Unable to load certfp access", ex); } } } @@ -318,7 +317,7 @@ public class Acidictive extends AcidCore // Non priv commands can be used by any oper if (confCommand.privilege == null) { - log.log(Level.INFO, "Denied access to " + confCommand.name + " to " + x + " [command has no privilege]"); + log.info("Denied access to " + confCommand.name + " to " + x + " [command has no privilege]"); // Commands with no priv can not be executed in PM return; } @@ -328,7 +327,7 @@ public class Acidictive extends AcidCore ; else if (x.hasFlags(confCommand.privilege) == false) { - log.log(Level.INFO, "Denied access to " + confCommand.name + " to " + x + " [user has no priv]"); + log.info("Denied access to " + confCommand.name + " to " + x + " [user has no priv]"); return; } } @@ -366,12 +365,12 @@ public class Acidictive extends AcidCore } catch (Exception ex) { - log.log(Level.WARNING, "Error running command " + confCommand.name, ex); + log.warn("Error running command " + confCommand.name, ex); } } catch (Exception e) { - log.log(Level.SEVERE, "Error processing PRIVMSG: " + msg, e); + log.error("Error processing PRIVMSG: " + msg, e); } } @@ -431,13 +430,13 @@ public class Acidictive extends AcidCore public static void onDie(String msg) { - log.log(Level.INFO, msg); + log.info(msg); } public static void onSync() { syncTime = (int) new Date().getTime() - (int) startTime; - log.log(Level.INFO, "Synced in " + (double) syncTime / 1000 + " seconds."); + log.info("Synced in " + (double) syncTime / 1000 + " seconds."); for (Event e : Event.getEvents()) e.onSync(); @@ -610,7 +609,7 @@ public class Acidictive extends AcidCore { Blowfish bf = new Blowfish(crypto_pass); message = bf.Encrypt(message); - log.log(Level.FINE, "Blowfish encrypted:" + message); + log.debug("Blowfish encrypted:" + message); } Protocol.privmsg(conf.general.control, recipient.getName(), message); @@ -636,7 +635,7 @@ public class Acidictive extends AcidCore { Blowfish bf = new Blowfish(crypto_pass); message = bf.Encrypt(message); - log.log(Level.FINE, "Blowfish encrypted:" + message); + log.debug("Blowfish encrypted:" + message); } } Protocol.privmsg(source, target, message); @@ -688,7 +687,7 @@ public class Acidictive extends AcidCore } catch (Exception e) { - log.log(Level.WARNING, "Unable to write to logfile", e); + log.warn("Unable to write to logfile", e); } f = null; } @@ -710,7 +709,7 @@ public class Acidictive extends AcidCore } catch (Exception e) { - log.log(Level.WARNING, "Unable to create file", e); + log.warn("Unable to create file", e); } } // all successful, let's create and return the BufferedWriter @@ -720,7 +719,7 @@ public class Acidictive extends AcidCore } catch (Exception e) { - log.log(Level.WARNING, e.getMessage(), e); + log.warn(null, e); } return null; } diff --git a/acid/src/main/java/net/rizon/acid/core/Channel.java b/acid/src/main/java/net/rizon/acid/core/Channel.java index ef30ac1..bcd8d52 100644 --- a/acid/src/main/java/net/rizon/acid/core/Channel.java +++ b/acid/src/main/java/net/rizon/acid/core/Channel.java @@ -4,11 +4,12 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Set; import java.util.TreeMap; -import java.util.logging.Level; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Channel { - private static final Logger log = Logger.getLogger(Channel.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Channel.class); private int ts; private String channel; @@ -65,7 +66,7 @@ public class Channel public void reset(int ts) { - log.log(Level.FINE, "Lowering TS of " + channel + " from " + this.ts + " to " + ts); + log.debug("Lowering TS of " + channel + " from " + this.ts + " to " + ts); this.ts = ts; for (Membership cm : list.values()) @@ -147,7 +148,7 @@ public class Channel list.put(newnick.toLowerCase(), user); } else - log.log(Level.WARNING, "Channel::onNick unknown nick change for " + oldnick + " -> " + newnick); + log.warn("Channel::onNick unknown nick change for " + oldnick + " -> " + newnick); } diff --git a/acid/src/main/java/net/rizon/acid/core/Logger.java b/acid/src/main/java/net/rizon/acid/core/Logger.java deleted file mode 100644 index ee480de..0000000 --- a/acid/src/main/java/net/rizon/acid/core/Logger.java +++ /dev/null @@ -1,87 +0,0 @@ -package net.rizon.acid.core; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.logging.Handler; -import java.util.logging.Level; -import java.util.logging.LogRecord; - -final class loggerHandler extends Handler -{ - private static final DateFormat format = new SimpleDateFormat("EEE MMM dd kk:mm:ss:SSSS yyyy"); - - public loggerHandler() - { - this.setLevel(Level.ALL); - } - - @Override - public void close() throws SecurityException { } - - @Override - public void flush() { } - - @Override - public void publish(LogRecord record) - { - String message = record.getMessage(); - StackTraceElement[] stes = (record.getThrown() != null ? record.getThrown().getStackTrace() : null); - boolean bad = record.getLevel() == Level.SEVERE || record.getLevel() == Level.WARNING || record.getLevel() == Level.ALL || record.getLevel() == Level.CONFIG; - - if (record.getLevel() == Level.INFO || bad) - if (AcidCore.me != null && !AcidCore.me.isBursting() && User.findUser(Acidictive.conf.general.control) != null) - { - if (message != null) - Acidictive.privmsg(Acidictive.conf.getChannelNamed("routing-spam"), message); - if (stes != null) - { - Acidictive.privmsg(Acidictive.conf.getChannelNamed("routing-spam"), record.getThrown().toString()); - for (StackTraceElement ste : stes) - Acidictive.privmsg(Acidictive.conf.getChannelNamed("routing-spam"), ste.toString()); - } - } - - if (Acidictive.conf == null || Acidictive.conf.debug || bad) - { - System.out.println(format.format(new Date(record.getMillis())) + " [" + record.getLevel().getName() + "] [" + record.getLoggerName() + "] " + message); - if (stes != null) - { - System.out.println(record.getThrown().toString()); - for (StackTraceElement ste : stes) - System.out.println(ste.toString()); - } - } - } -} - -public class Logger extends java.util.logging.Logger -{ - private static HashMap loggers = new HashMap(); - private static final loggerHandler handler = new loggerHandler(); - - protected Logger(String name, String resourceBundleName) - { - super(name, resourceBundleName); - } - - public static Logger getLogger(final String name) - { - Logger l = loggers.get(name); - if (l != null) - return l; - - l = new Logger(name, null); - loggers.put(name, l); - - l.setLevel(Level.ALL); - l.addHandler(handler); - return l; - } - - public void log(Exception ex) - { - this.log(Level.SEVERE, null, ex); - } -} \ No newline at end of file diff --git a/acid/src/main/java/net/rizon/acid/core/Message.java b/acid/src/main/java/net/rizon/acid/core/Message.java index 859e7af..3d6df4c 100644 --- a/acid/src/main/java/net/rizon/acid/core/Message.java +++ b/acid/src/main/java/net/rizon/acid/core/Message.java @@ -1,12 +1,14 @@ package net.rizon.acid.core; import java.util.HashMap; -import java.util.logging.Level; - import net.rizon.acid.util.ClassLoader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public abstract class Message { + private static final Logger log = LoggerFactory.getLogger(Message.class); + public static final char BOLD = 2; private static final String messageBase = "net.rizon.acid.messages"; @@ -50,7 +52,7 @@ public abstract class Message } catch (Exception ex) { - AcidCore.log.log(Level.SEVERE, "Error initializing messages", ex); + log.error("Error initializing messages", ex); System.exit(-1); } } diff --git a/acid/src/main/java/net/rizon/acid/core/Plugin.java b/acid/src/main/java/net/rizon/acid/core/Plugin.java index cf7c45d..50cecbb 100644 --- a/acid/src/main/java/net/rizon/acid/core/Plugin.java +++ b/acid/src/main/java/net/rizon/acid/core/Plugin.java @@ -2,7 +2,6 @@ package net.rizon.acid.core; import java.lang.reflect.Constructor; import java.util.LinkedList; - import net.rizon.acid.util.ClassLoader; public abstract class Plugin diff --git a/acid/src/main/java/net/rizon/acid/core/Protocol.java b/acid/src/main/java/net/rizon/acid/core/Protocol.java index c1acec0..73c86db 100644 --- a/acid/src/main/java/net/rizon/acid/core/Protocol.java +++ b/acid/src/main/java/net/rizon/acid/core/Protocol.java @@ -1,14 +1,12 @@ package net.rizon.acid.core; -import java.util.logging.Level; -import static net.rizon.acid.core.AcidCore.getTS; -import static net.rizon.acid.core.AcidCore.me; -import static net.rizon.acid.core.AcidCore.password; import net.rizon.acid.io.IRCMessage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Protocol { - private static final Logger log = Logger.getLogger(Protocol.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Protocol.class); private static void send(String source, String command, Object... args) { @@ -93,7 +91,7 @@ public class Protocol { if (u.getServer() != AcidCore.me) { - log.log(Level.WARNING, "Fake direction for JOIN " + u.getServer().getName() + " <-> " + AcidCore.me.getName()); + log.warn("Fake direction for JOIN " + u.getServer().getName() + " <-> " + AcidCore.me.getName()); return; } @@ -104,7 +102,7 @@ public class Protocol { if (u.getServer() != AcidCore.me) { - log.log(Level.WARNING, "Fake direction for SJOIN " + u.getServer().getName() + " <-> " + AcidCore.me.getName()); + log.warn("Fake direction for SJOIN " + u.getServer().getName() + " <-> " + AcidCore.me.getName()); return; } @@ -115,7 +113,7 @@ public class Protocol { if (u.getServer() != AcidCore.me) { - log.log(Level.WARNING, "Fake direction for PART " + u.getServer().getName() + " <-> " + AcidCore.me.getName()); + log.warn("Fake direction for PART " + u.getServer().getName() + " <-> " + AcidCore.me.getName()); return; } @@ -126,7 +124,7 @@ public class Protocol { if (u.getServer() != AcidCore.me) { - log.log(Level.WARNING, "Fake direction for QUIT " + u.getServer().getName() + " <-> " + AcidCore.me.getName()); + log.warn("Fake direction for QUIT " + u.getServer().getName() + " <-> " + AcidCore.me.getName()); return; } diff --git a/acid/src/main/java/net/rizon/acid/core/Server.java b/acid/src/main/java/net/rizon/acid/core/Server.java index 6857d66..d94b975 100644 --- a/acid/src/main/java/net/rizon/acid/core/Server.java +++ b/acid/src/main/java/net/rizon/acid/core/Server.java @@ -5,11 +5,13 @@ import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.Set; -import java.util.logging.Level; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Server { - private static final Logger log = Logger.getLogger(Server.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Server.class); + private String name, description, SID; private Server hub; private int linkTime, syncTime, users, recordusers, hops; @@ -31,7 +33,7 @@ public class Server sidMap.put(SID, this); serverMap.put(name.toLowerCase(), this); - log.log(Level.FINE, "New server: " + name + " (SID: " + SID + ") uplinked to " + (hub != null ? hub.getName() : "nothing")); + log.debug("New server: " + name + " (SID: " + SID + ") uplinked to " + (hub != null ? hub.getName() : "nothing")); } public void onQuit() @@ -81,7 +83,7 @@ public class Server if (this.users < 0) { this.users = 0; - log.log(Level.WARNING, "User count for " + this.getName() + " managed to drop below 0?"); + log.warn("User count for " + this.getName() + " managed to drop below 0?"); } } diff --git a/acid/src/main/java/net/rizon/acid/core/Timer.java b/acid/src/main/java/net/rizon/acid/core/Timer.java index 6a331ef..508304f 100644 --- a/acid/src/main/java/net/rizon/acid/core/Timer.java +++ b/acid/src/main/java/net/rizon/acid/core/Timer.java @@ -3,11 +3,13 @@ package net.rizon.acid.core; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; -import java.util.logging.Level; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public abstract class Timer { - private static final Logger log = Logger.getLogger(Timer.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Timer.class); + private static ArrayList timers = new ArrayList(); public Date creation; @@ -55,7 +57,7 @@ public abstract class Timer } catch (Exception ex) { - log.log(Level.SEVERE, "Error running timer", ex); + log.error("Error running timer", ex); } if (t.repeating == false) t.stop(); diff --git a/acid/src/main/java/net/rizon/acid/core/User.java b/acid/src/main/java/net/rizon/acid/core/User.java index b82aa9e..d64c772 100644 --- a/acid/src/main/java/net/rizon/acid/core/User.java +++ b/acid/src/main/java/net/rizon/acid/core/User.java @@ -10,14 +10,14 @@ import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; import java.util.Set; -import java.util.logging.Level; - import net.rizon.acid.conf.AccessPreset; -import net.rizon.acid.util.CloakGenerator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class User implements Comparable { - private static final Logger log = Logger.getLogger(User.class.getName()); + private static final Logger log = LoggerFactory.getLogger(User.class); + private String nick, user, host, vhost, name, identnick, modes, UID, ip, certfp, authflags, su; private String cloakedIp, cloakedHost; @@ -468,7 +468,7 @@ public class User implements Comparable } catch (SQLException ex) { - log.log(Level.WARNING, "Unable to load access for user", ex); + log.warn("Unable to load access for user", ex); } } diff --git a/acid/src/main/java/net/rizon/acid/core/Version.java b/acid/src/main/java/net/rizon/acid/core/Version.java index 3021961..684ff2c 100644 --- a/acid/src/main/java/net/rizon/acid/core/Version.java +++ b/acid/src/main/java/net/rizon/acid/core/Version.java @@ -5,11 +5,12 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; -import java.util.logging.Level; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Version { - private static final Logger log = Logger.getLogger(Version.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Version.class); private static HashMap values = new HashMap(); public static void load() @@ -52,7 +53,7 @@ public class Version } catch (IOException ex) { - log.log(Level.INFO, "Unable to load GIT version data", ex); + log.info("Unable to load GIT version data", ex); } } diff --git a/acid/src/main/java/net/rizon/acid/io/AcidHandler.java b/acid/src/main/java/net/rizon/acid/io/AcidHandler.java index f4016c9..5598384 100644 --- a/acid/src/main/java/net/rizon/acid/io/AcidHandler.java +++ b/acid/src/main/java/net/rizon/acid/io/AcidHandler.java @@ -27,85 +27,34 @@ package net.rizon.acid.io; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; -import java.util.logging.Level; import net.rizon.acid.core.AcidCore; -import net.rizon.acid.core.Logger; +import org.slf4j.LoggerFactory; public class AcidHandler extends SimpleChannelInboundHandler { - private static final Logger log = Logger.getLogger(AcidHandler.class.getName()); + private static final org.slf4j.Logger log = LoggerFactory.getLogger(AcidHandler.class); @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { AcidCore.onConnect(); -// synchronized (plexus.getIrc()) -// { -// assert client == null; -// -// plexus.getStats().incrementTotalConnections(); -// -// try -// { -// client = new Client(plexus, ctx.channel()); -// } -// catch (Exception ex) -// { -// logger.error("Unable to accept new connections", ex); -// return; -// } -// -// plexus.getClientManager().insertClient(client); -// -// client.startAuth(); -// } } @Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { AcidCore.onDisconnect(); -// synchronized (plexus.getIrc()) -// { -// client.exit("Connection closed"); -// -// plexus.getClientManager().removeClient(client); -// } } @Override protected void channelRead0(ChannelHandlerContext ctx, IRCMessage message) throws Exception { AcidCore.processMessage(message); -// synchronized (plexus.getIrc()) -// { -// client.onRead(message); -// } } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { - log.log(Level.SEVERE, "Uncaught exception in pipeline", cause); - //ctx.close(); -// if (cause instanceof TooLongFrameException) -// { -// // thrown by LineBasedFrameDecoder -// logger.debug("Too long of frame from " + client, cause); -// return; -// } -// -// logger.error("Exception while processing client " + client, cause); - } - - @Override - public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception - { -// if (!(evt instanceof ThrottleLimitExceededEvent)) -// { -// return; -// } -// -// client.exit("Excess Flood"); + log.error("Uncaught exception in pipeline", cause); } } diff --git a/acid/src/main/java/net/rizon/acid/io/IdleHandler.java b/acid/src/main/java/net/rizon/acid/io/IdleHandler.java index 63cfd4e..f41ed09 100644 --- a/acid/src/main/java/net/rizon/acid/io/IdleHandler.java +++ b/acid/src/main/java/net/rizon/acid/io/IdleHandler.java @@ -4,15 +4,13 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.timeout.IdleState; import io.netty.handler.timeout.IdleStateEvent; -import java.util.logging.Level; -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; -import net.rizon.acid.core.Logger; import net.rizon.acid.core.Protocol; +import org.slf4j.LoggerFactory; public class IdleHandler extends SimpleChannelInboundHandler { - private static final Logger log = Logger.getLogger(SimpleChannelInboundHandler.class.getName()); + private static final org.slf4j.Logger log = LoggerFactory.getLogger(SimpleChannelInboundHandler.class); private boolean idle; @@ -40,7 +38,7 @@ public class IdleHandler extends SimpleChannelInboundHandler } else { - log.log(Level.WARNING, "No read from uplink in 120 seconds, closing connection"); + log.warn("No read from uplink in 120 seconds, closing connection"); ctx.close(); } diff --git a/acid/src/main/java/net/rizon/acid/io/InboundLoggingHandler.java b/acid/src/main/java/net/rizon/acid/io/InboundLoggingHandler.java index b09c496..43506de 100644 --- a/acid/src/main/java/net/rizon/acid/io/InboundLoggingHandler.java +++ b/acid/src/main/java/net/rizon/acid/io/InboundLoggingHandler.java @@ -28,18 +28,18 @@ package net.rizon.acid.io; import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; -import java.util.logging.Level; -import net.rizon.acid.core.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @Sharable public class InboundLoggingHandler extends SimpleChannelInboundHandler { - private static final Logger log = Logger.getLogger(InboundLoggingHandler.class.getName()); + private static final Logger log = LoggerFactory.getLogger(InboundLoggingHandler.class); @Override public void channelRead0(ChannelHandlerContext ctx, IRCMessage msg) throws Exception { - log.log(Level.FINE, "<- " + msg); + log.debug("<- {}", msg); ctx.fireChannelRead(msg); } diff --git a/acid/src/main/java/net/rizon/acid/io/OutboundLoggingHandler.java b/acid/src/main/java/net/rizon/acid/io/OutboundLoggingHandler.java index 9168401..0c4f34a 100644 --- a/acid/src/main/java/net/rizon/acid/io/OutboundLoggingHandler.java +++ b/acid/src/main/java/net/rizon/acid/io/OutboundLoggingHandler.java @@ -29,18 +29,17 @@ import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelOutboundHandlerAdapter; import io.netty.channel.ChannelPromise; -import java.util.logging.Level; -import net.rizon.acid.core.Logger; +import org.slf4j.LoggerFactory; @Sharable public class OutboundLoggingHandler extends ChannelOutboundHandlerAdapter { - private static final Logger log = Logger.getLogger(OutboundLoggingHandler.class.getName()); + private static final org.slf4j.Logger log = LoggerFactory.getLogger(OutboundLoggingHandler.class); @Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { - log.log(Level.FINE, "-> " + msg); + log.debug("-> {}", msg); ctx.write(msg, promise); } diff --git a/acid/src/main/java/net/rizon/acid/logging/ConsoleFilter.java b/acid/src/main/java/net/rizon/acid/logging/ConsoleFilter.java new file mode 100644 index 0000000..cc38e6b --- /dev/null +++ b/acid/src/main/java/net/rizon/acid/logging/ConsoleFilter.java @@ -0,0 +1,18 @@ +package net.rizon.acid.logging; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.filter.Filter; +import ch.qos.logback.core.spi.FilterReply; +import net.rizon.acid.core.Acidictive; + +public class ConsoleFilter extends Filter +{ + @Override + public FilterReply decide(ILoggingEvent event) + { + boolean show = Acidictive.conf.debug || event.getLevel() != Level.DEBUG;; + return show ? FilterReply.ACCEPT : FilterReply.DENY; + } + +} diff --git a/acid/src/main/java/net/rizon/acid/logging/Logger.java b/acid/src/main/java/net/rizon/acid/logging/Logger.java new file mode 100644 index 0000000..0c8ace2 --- /dev/null +++ b/acid/src/main/java/net/rizon/acid/logging/Logger.java @@ -0,0 +1,55 @@ +package net.rizon.acid.logging; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.classic.spi.IThrowableProxy; +import ch.qos.logback.classic.spi.StackTraceElementProxy; +import ch.qos.logback.core.UnsynchronizedAppenderBase; +import java.util.ArrayList; +import java.util.List; +import net.rizon.acid.core.AcidCore; +import net.rizon.acid.core.Acidictive; +import net.rizon.acid.core.User; + +public class Logger extends UnsynchronizedAppenderBase +{ + @Override + protected void append(ILoggingEvent event) + { + Level level = event.getLevel(); + if (!level.isGreaterOrEqual(Level.INFO)) + { + return; + } + + String message = event.getMessage(); + IThrowableProxy throwable = event.getThrowableProxy(); + StackTraceElement[] stes = null; + + if (throwable != null) + { + List list = new ArrayList<>(); + for (StackTraceElementProxy step : throwable.getStackTraceElementProxyArray()) + { + list.add(step.getStackTraceElement()); + } + stes = list.toArray(new StackTraceElement[0]); + } + + if (AcidCore.me != null && !AcidCore.me.isBursting() && User.findUser(Acidictive.conf.general.control) != null) + { + if (message != null) + { + Acidictive.privmsg(Acidictive.conf.getChannelNamed("routing-spam"), message); + } + if (stes != null) + { + Acidictive.privmsg(Acidictive.conf.getChannelNamed("routing-spam"), throwable.getMessage()); + for (StackTraceElement ste : stes) + { + Acidictive.privmsg(Acidictive.conf.getChannelNamed("routing-spam"), ste.toString()); + } + } + } + } +} diff --git a/acid/src/main/java/net/rizon/acid/logging/LoggerUtils.java b/acid/src/main/java/net/rizon/acid/logging/LoggerUtils.java new file mode 100644 index 0000000..dbe74c6 --- /dev/null +++ b/acid/src/main/java/net/rizon/acid/logging/LoggerUtils.java @@ -0,0 +1,14 @@ +package net.rizon.acid.logging; + +import org.slf4j.Logger; + +public class LoggerUtils +{ + public static void initThread(final Logger logger, Thread t) + { + t.setUncaughtExceptionHandler((Thread t1, Throwable e) -> + { + logger.error("uncaught exception", e); + }); + } +} diff --git a/acid/src/main/java/net/rizon/acid/messages/Encap.java b/acid/src/main/java/net/rizon/acid/messages/Encap.java index 07569d7..a105d80 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Encap.java +++ b/acid/src/main/java/net/rizon/acid/messages/Encap.java @@ -1,7 +1,5 @@ package net.rizon.acid.messages; -import java.util.ArrayList; -import java.util.List; import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Message; diff --git a/acid/src/main/java/net/rizon/acid/messages/Invite.java b/acid/src/main/java/net/rizon/acid/messages/Invite.java index 072b84c..a2c4e76 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Invite.java +++ b/acid/src/main/java/net/rizon/acid/messages/Invite.java @@ -1,12 +1,8 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Message; -import net.rizon.acid.core.Server; import net.rizon.acid.core.User; public class Invite extends Message diff --git a/acid/src/main/java/net/rizon/acid/messages/Kick.java b/acid/src/main/java/net/rizon/acid/messages/Kick.java index fa93c60..66a951a 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Kick.java +++ b/acid/src/main/java/net/rizon/acid/messages/Kick.java @@ -1,16 +1,17 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Message; import net.rizon.acid.core.Server; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Kick extends Message { + private static final Logger log = LoggerFactory.getLogger(Kick.class); + public Kick() { super("KICK"); @@ -25,7 +26,7 @@ public class Kick extends Message User kickee = User.findUser(params[1]); if (kickee == null) { - AcidCore.log.log(Level.WARNING, "KICK for nonexistent user " + params[1]); + log.warn("KICK for nonexistent user " + params[1]); return; } @@ -33,12 +34,12 @@ public class Kick extends Message if (kicker == source) kicker = Server.toName(source); if (kicker == source) - AcidCore.log.log(Level.WARNING, "KICK from nonexitent source " + source); + log.warn("KICK from nonexitent source " + source); Channel chan = Channel.findChannel(channel); if (chan == null) { - AcidCore.log.log(Level.WARNING, "KICK from " + kicker + " for " + kickee.getNick() + " on nonexistent channel " + channel); + log.warn("KICK from " + kicker + " for " + kickee.getNick() + " on nonexistent channel " + channel); return; } diff --git a/acid/src/main/java/net/rizon/acid/messages/Mode.java b/acid/src/main/java/net/rizon/acid/messages/Mode.java index 0aadc11..beee052 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Mode.java +++ b/acid/src/main/java/net/rizon/acid/messages/Mode.java @@ -1,14 +1,15 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Message; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Mode extends Message { + private static final Logger log = LoggerFactory.getLogger(Mode.class); + public Mode() { super("MODE"); @@ -25,12 +26,12 @@ public class Mode extends Message User setter = User.findUser(source), target = User.findUser(params[0]); if (setter == null) { - AcidCore.log.log(Level.WARNING, "MODE from nonexistent source " + source); + log.warn("MODE from nonexistent source " + source); return; } else if (target == null) { - AcidCore.log.log(Level.WARNING, "MODE for nonexistent user " + params[0]); + log.warn("MODE for nonexistent user " + params[0]); return; } diff --git a/acid/src/main/java/net/rizon/acid/messages/Part.java b/acid/src/main/java/net/rizon/acid/messages/Part.java index d96906c..0dbc3a2 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Part.java +++ b/acid/src/main/java/net/rizon/acid/messages/Part.java @@ -1,15 +1,16 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Message; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Part extends Message { + private static final Logger log = LoggerFactory.getLogger(Part.class); + public Part() { super("PART"); @@ -23,7 +24,7 @@ public class Part extends Message Channel chan = Channel.findChannel(params[0]); if (chan == null) { - AcidCore.log.log(Level.WARNING, "PART from " + u.getNick() + " for nonexistent channel " + params[0]); + log.warn("PART from " + u.getNick() + " for nonexistent channel " + params[0]); return; } diff --git a/acid/src/main/java/net/rizon/acid/messages/Ping.java b/acid/src/main/java/net/rizon/acid/messages/Ping.java index 0dabf37..8a48833 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Ping.java +++ b/acid/src/main/java/net/rizon/acid/messages/Ping.java @@ -1,6 +1,5 @@ package net.rizon.acid.messages; -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Message; import net.rizon.acid.core.Protocol; diff --git a/acid/src/main/java/net/rizon/acid/messages/Privmsg.java b/acid/src/main/java/net/rizon/acid/messages/Privmsg.java index c083a9e..71d3f26 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Privmsg.java +++ b/acid/src/main/java/net/rizon/acid/messages/Privmsg.java @@ -1,15 +1,16 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Message; import net.rizon.acid.core.User; import net.rizon.acid.util.Blowfish; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Privmsg extends Message { + private static final Logger log = LoggerFactory.getLogger(Privmsg.class); + public Privmsg() { super("PRIVMSG"); @@ -37,11 +38,11 @@ public class Privmsg extends Message return; // Don't process non-encrypted messages sent to targets expecting encrypted messages msg = dec; - AcidCore.log.log(Level.FINE, "Blowfish decrypted: " + msg); + log.debug("Blowfish decrypted: {}", msg); } catch (Exception e) { - AcidCore.log.log(Level.WARNING, "Unable to blowfish decrypt: " + msg, e); + log.warn("Unable to blowfish decrypt: " + msg, e); return; // Don't process non-encrypted messages sent to targets expecting encrypted messages } } diff --git a/acid/src/main/java/net/rizon/acid/messages/SID.java b/acid/src/main/java/net/rizon/acid/messages/SID.java index fdbc37d..836678d 100644 --- a/acid/src/main/java/net/rizon/acid/messages/SID.java +++ b/acid/src/main/java/net/rizon/acid/messages/SID.java @@ -1,14 +1,15 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Message; import net.rizon.acid.core.Server; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class SID extends Message { + private static final Logger log = LoggerFactory.getLogger(SID.class); + public SID() { super("SID"); @@ -26,7 +27,7 @@ public class SID extends Message server = Server.findServer(params[2]); if (server != null) { - AcidCore.log.log(Level.WARNING, "Server " + server.getName() + " (" + params[2] + "/" + server.getSID() + ") introduced from " + from.getName() + ", but already exists from " + (server.getHub() != null ? server.getHub().getName() : " no uplink")); + log.warn("Server " + server.getName() + " (" + params[2] + "/" + server.getSID() + ") introduced from " + from.getName() + ", but already exists from " + (server.getHub() != null ? server.getHub().getName() : " no uplink")); return; } diff --git a/acid/src/main/java/net/rizon/acid/messages/SJoin.java b/acid/src/main/java/net/rizon/acid/messages/SJoin.java index a6835b1..9dd59f6 100644 --- a/acid/src/main/java/net/rizon/acid/messages/SJoin.java +++ b/acid/src/main/java/net/rizon/acid/messages/SJoin.java @@ -1,16 +1,17 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Message; import net.rizon.acid.core.Server; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class SJoin extends Message { + private static final Logger log = LoggerFactory.getLogger(SJoin.class); + public SJoin() { super("SJOIN"); @@ -90,7 +91,7 @@ public class SJoin extends Message users[i].addChan(chan); } else - AcidCore.log.log(Level.WARNING, "SJOIN for nonexistant user " + stripped_user + " from " + source.getName()); + log.warn("SJOIN for nonexistant user " + stripped_user + " from " + source.getName()); } if (source.isBursting() == false) diff --git a/acid/src/main/java/net/rizon/acid/messages/SQuit.java b/acid/src/main/java/net/rizon/acid/messages/SQuit.java index f0cbcb1..cc6ae17 100644 --- a/acid/src/main/java/net/rizon/acid/messages/SQuit.java +++ b/acid/src/main/java/net/rizon/acid/messages/SQuit.java @@ -1,14 +1,15 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Message; import net.rizon.acid.core.Server; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class SQuit extends Message { + private static final Logger log = LoggerFactory.getLogger(SQuit.class); + public SQuit() { super("SQUIT"); @@ -23,7 +24,7 @@ public class SQuit extends Message Server x = Server.findServer(params[0]); if (x == null) { - AcidCore.log.log(Level.WARNING, "SQUIT for nonexistent server " + params[0]); + log.warn("SQUIT for nonexistent server " + params[0]); return; } diff --git a/acid/src/main/java/net/rizon/acid/messages/Stats.java b/acid/src/main/java/net/rizon/acid/messages/Stats.java index c5d544d..f89f50e 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Stats.java +++ b/acid/src/main/java/net/rizon/acid/messages/Stats.java @@ -3,7 +3,6 @@ package net.rizon.acid.messages; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; - import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Message; import net.rizon.acid.core.Protocol; diff --git a/acid/src/main/java/net/rizon/acid/messages/TMode.java b/acid/src/main/java/net/rizon/acid/messages/TMode.java index c24b529..25dc5be 100644 --- a/acid/src/main/java/net/rizon/acid/messages/TMode.java +++ b/acid/src/main/java/net/rizon/acid/messages/TMode.java @@ -1,16 +1,17 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - -import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Message; import net.rizon.acid.core.Server; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class TMode extends Message { + private static final Logger log = LoggerFactory.getLogger(TMode.class); + public TMode() { super("TMODE"); @@ -26,7 +27,7 @@ public class TMode extends Message setter = User.toName(source); if (setter == source) { - AcidCore.log.log(Level.WARNING, "TMODE from nonexistent source " + source); + log.warn("TMODE from nonexistent source " + source); return; } diff --git a/acid/src/main/java/net/rizon/acid/messages/Whois.java b/acid/src/main/java/net/rizon/acid/messages/Whois.java index b1f8e45..c04e1df 100644 --- a/acid/src/main/java/net/rizon/acid/messages/Whois.java +++ b/acid/src/main/java/net/rizon/acid/messages/Whois.java @@ -1,15 +1,17 @@ package net.rizon.acid.messages; -import java.util.logging.Level; - import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Message; import net.rizon.acid.core.Protocol; import net.rizon.acid.core.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Whois extends Message { + private static final Logger log = LoggerFactory.getLogger(Whois.class); + public Whois() { super("WHOIS"); @@ -24,12 +26,12 @@ public class Whois extends Message if (u == null) { - AcidCore.log.log(Level.WARNING, "Whois for nonexistent nick " + params[0]); + log.warn("Whois for nonexistent nick " + params[0]); return; } else if (u.getServer() != AcidCore.me) { - AcidCore.log.log(Level.WARNING, "Fake direction for whois (" + u.getServer().getName() + ")"); + log.warn("Fake direction for whois (" + u.getServer().getName() + ")"); return; } diff --git a/acid/src/main/java/net/rizon/acid/sql/SQL.java b/acid/src/main/java/net/rizon/acid/sql/SQL.java index 4fcb8d1..562b680 100644 --- a/acid/src/main/java/net/rizon/acid/sql/SQL.java +++ b/acid/src/main/java/net/rizon/acid/sql/SQL.java @@ -6,15 +6,14 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.LinkedList; -import java.util.logging.Level; - import net.rizon.acid.conf.Database; import net.rizon.acid.core.Acidictive; -import net.rizon.acid.core.Logger; +import org.slf4j.LoggerFactory; public class SQL extends Thread { - private static final Logger log = Logger.getLogger(SQL.class.getName()); + private static final org.slf4j.Logger log = LoggerFactory.getLogger(SQL.class); + private PreparedStatement statement; private ResultSet result; private String url, username, password; @@ -51,7 +50,7 @@ public class SQL extends Thread { this.shuttingDown = true; - log.log(Level.INFO, "Flushing pending SQL queries..."); + log.info("Flushing pending SQL queries..."); synchronized (this.queryLock) { @@ -67,7 +66,7 @@ public class SQL extends Thread catch (InterruptedException ex) { } } - log.log(Level.INFO, "All SQL queries successfully flushed"); + log.info("All SQL queries successfully flushed"); try { this.con.close(); } catch (Exception ex) { } @@ -80,7 +79,7 @@ public class SQL extends Thread this.last_connect = System.currentTimeMillis(); this.con = DriverManager.getConnection(this.url, this.username, this.password); - log.log(Level.INFO, "Successfully connected to " + this.version() + " using " + this.con.getMetaData().getDriverName() + " (" + this.con.getMetaData().getDriverVersion() + ")"); + log.info("Successfully connected to " + this.version() + " using " + this.con.getMetaData().getDriverName() + " (" + this.con.getMetaData().getDriverVersion() + ")"); } public PreparedStatement prepare(final String statement) throws SQLException @@ -119,7 +118,7 @@ public class SQL extends Thread public int executeUpdateBlocking(PreparedStatement statement) throws SQLException { int i = statement.executeUpdate(); - log.log(Level.FINE, "Successfully executed " + statement); + log.debug("Successfully executed " + statement); return i; } @@ -127,7 +126,7 @@ public class SQL extends Thread { this.result = statement.executeQuery(); - log.log(Level.FINE, "Successfully executed " + statement); + log.debug("Successfully executed " + statement); return this.result; } @@ -194,7 +193,7 @@ public class SQL extends Thread q.executeUpdate(); lastQuery = System.currentTimeMillis(); - log.log(Level.FINE, "Successfully executed " + q + " in worker thread"); + log.debug("Successfully executed " + q + " in worker thread"); } catch (SQLException ex) { @@ -226,7 +225,7 @@ public class SQL extends Thread long now = System.currentTimeMillis() / 1000L; if (lastWarn + 60 < now) { - log.log(Level.SEVERE, reason, ex); + log.error(reason, ex); lastWarn = now; } } diff --git a/acid/src/main/java/net/rizon/acid/util/Blowfish.java b/acid/src/main/java/net/rizon/acid/util/Blowfish.java index 88744c1..476a7f4 100644 --- a/acid/src/main/java/net/rizon/acid/util/Blowfish.java +++ b/acid/src/main/java/net/rizon/acid/util/Blowfish.java @@ -30,15 +30,14 @@ package net.rizon.acid.util; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; - import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; - -import net.rizon.acid.core.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Blowfish { - private static final Logger log = Logger.getLogger(Blowfish.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Blowfish.class); /* * Constructor of Blowfish class Key param @@ -54,7 +53,7 @@ public class Blowfish } catch (Exception e) { - log.log(e); + log.error(null, e); } } @@ -69,7 +68,7 @@ public class Blowfish } catch (InvalidKeyException e) { - log.log(e); + log.error(null, e); } String REncrypt = ""; @@ -94,7 +93,7 @@ public class Blowfish } catch (Exception e) { - log.log(e); + log.error(null, e); } REncrypt = Begin.concat(REncrypt); @@ -209,7 +208,7 @@ public class Blowfish } catch (UnsupportedEncodingException e) { - log.log(e); + log.error(null, e); } return Result; } diff --git a/acid/src/main/java/net/rizon/acid/util/ClassLoader.java b/acid/src/main/java/net/rizon/acid/util/ClassLoader.java index 590cd21..5427c3b 100644 --- a/acid/src/main/java/net/rizon/acid/util/ClassLoader.java +++ b/acid/src/main/java/net/rizon/acid/util/ClassLoader.java @@ -4,14 +4,13 @@ import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; -import java.util.logging.Level; - -import net.rizon.acid.core.Logger; import net.rizon.acid.core.Plugin; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public final class ClassLoader extends URLClassLoader { - private static final Logger log = Logger.getLogger(ClassLoader.class.getName()); + private static final Logger log = LoggerFactory.getLogger(ClassLoader.class); public ClassLoader(String plugin, String classname) { @@ -32,7 +31,7 @@ public final class ClassLoader extends URLClassLoader /* can't find the directory where we expect it */ if (!targetFolder.exists()) { - log.log(Level.WARNING, "Unable to find " + pluginPath + "/target/ directory to source the JAR from."); + log.warn("Unable to find " + pluginPath + "/target/ directory to source the JAR from."); return; } @@ -60,24 +59,24 @@ public final class ClassLoader extends URLClassLoader File f = new File(targetFolder, "classes/"); if (!f.isDirectory()) { - log.log(Level.WARNING, "Unable to locate plugin JAR/class files for " + plugin); + log.warn("Unable to locate plugin JAR/class files for " + plugin); return; } - log.log(Level.FINE, "Using classes/ for plugin " + plugin); + log.warn("Using classes/ for plugin " + plugin); try { this.addURL(f.toURI().toURL()); } catch (MalformedURLException ex) { - log.log(Level.WARNING, "Unable to add class URL for " + plugin + " [" + f.toURI() + "]", ex); + log.warn("Unable to add class URL for " + plugin + " [" + f.toURI() + "]", ex); } return; } else { - log.log(Level.FINE, "Found load candidate " + jar.getName() + " for plugin `" + plugin + "`"); + log.debug("Found load candidate " + jar.getName() + " for plugin `" + plugin + "`"); } } else @@ -94,12 +93,12 @@ public final class ClassLoader extends URLClassLoader } catch (MalformedURLException ex) { - log.log(Level.WARNING, "Unable to add plugin JAR URL for " + plugin + " [" + jar.toURI() + "]", ex); + log.warn("Unable to add plugin JAR URL for " + plugin + " [" + jar.toURI() + "]", ex); } } else { - log.log(Level.WARNING, "Unable to locate JAR for plugin " + plugin); + log.warn("Unable to locate JAR for plugin " + plugin); } } diff --git a/acid/src/main/java/net/rizon/acid/util/CloakGenerator.java b/acid/src/main/java/net/rizon/acid/util/CloakGenerator.java index b730d66..7fab4ec 100644 --- a/acid/src/main/java/net/rizon/acid/util/CloakGenerator.java +++ b/acid/src/main/java/net/rizon/acid/util/CloakGenerator.java @@ -1,8 +1,8 @@ package net.rizon.acid.util; -import java.net.InetAddress; import java.net.Inet4Address; import java.net.Inet6Address; +import java.net.InetAddress; import java.net.UnknownHostException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; diff --git a/acid/src/main/java/net/rizon/acid/util/EMail.java b/acid/src/main/java/net/rizon/acid/util/EMail.java index 8b4b080..55a58a3 100644 --- a/acid/src/main/java/net/rizon/acid/util/EMail.java +++ b/acid/src/main/java/net/rizon/acid/util/EMail.java @@ -2,23 +2,22 @@ package net.rizon.acid.util; import java.util.Date; import java.util.Properties; - import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; - import net.rizon.acid.core.Acidictive; -import net.rizon.acid.core.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Handles sending e-mails. */ public class EMail { - private static final Logger log = Logger.getLogger(EMail.class.getName()); + private static final Logger log = LoggerFactory.getLogger(EMail.class); public EMail(String to, String subject, String msg) { @@ -41,7 +40,7 @@ public class EMail } catch(MessagingException e) { - log.log(e); + log.error(null, e); } } } diff --git a/acid/src/main/resources/logback.xml b/acid/src/main/resources/logback.xml new file mode 100644 index 0000000..5d423bc --- /dev/null +++ b/acid/src/main/resources/logback.xml @@ -0,0 +1,32 @@ + + + + + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n + + + + + + moo-${byDay}.log + true + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n + + + + + + + + + + + + diff --git a/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/commands/GC.java b/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/commands/GC.java index dc14798..97c0c33 100644 --- a/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/commands/GC.java +++ b/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/commands/GC.java @@ -1,7 +1,7 @@ package net.rizon.acid.plugins.pyva.pyva.commands; -import static net.rizon.acid.core.Acidictive.reply; import net.rizon.acid.core.AcidUser; +import static net.rizon.acid.core.Acidictive.reply; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Command; import net.rizon.acid.core.User; diff --git a/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/commands/Plugins.java b/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/commands/Plugins.java index f46d9de..50d59db 100644 --- a/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/commands/Plugins.java +++ b/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/commands/Plugins.java @@ -1,19 +1,18 @@ package net.rizon.acid.plugins.pyva.pyva.commands; -import java.util.logging.Level; - import net.rizon.acid.core.AcidUser; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Command; -import net.rizon.acid.core.Logger; import net.rizon.acid.core.User; import net.rizon.acid.plugins.pyva.pyva.pyva; import net.rizon.pyva.PyvaException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Plugins extends Command { - private static final Logger log = Logger.getLogger(Plugins.class.getName()); + private static final Logger log = LoggerFactory.getLogger(Plugins.class); public Plugins() { @@ -30,7 +29,7 @@ public class Plugins extends Command } catch (PyvaException e) { - log.log(Level.WARNING, "Unable to get current plugins", e); + log.warn("Unable to get current plugins", e); return; } @@ -56,7 +55,7 @@ public class Plugins extends Command } catch (PyvaException e) { - log.log(Level.WARNING, "Unable to load pyva script", e); + log.warn("Unable to load pyva script", e); } } else if (args[0].equalsIgnoreCase("UNLOAD") && args.length == 2) @@ -79,7 +78,7 @@ public class Plugins extends Command } catch (PyvaException e) { - log.log(Level.WARNING, "Unable to unload pyva script", e); + log.warn("Unable to unload pyva script", e); } } else if (args[0].equalsIgnoreCase("RELOAD") && args.length == 2) @@ -92,7 +91,7 @@ public class Plugins extends Command } catch (PyvaException e) { - log.log(Level.WARNING, "Unable to reload pyva script", e); + log.warn("Unable to reload pyva script", e); } } else diff --git a/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/conf/Config.java b/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/conf/Config.java index 0023e06..136f5b5 100644 --- a/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/conf/Config.java +++ b/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/conf/Config.java @@ -1,7 +1,6 @@ package net.rizon.acid.plugins.pyva.pyva.conf; import java.util.List; - import net.rizon.acid.conf.Client; import net.rizon.acid.conf.ConfigException; import net.rizon.acid.conf.Configuration; diff --git a/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/pyva.java b/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/pyva.java index 1cb4c0b..d85511d 100644 --- a/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/pyva.java +++ b/pyva/pyva/src/main/java/net/rizon/acid/plugins/pyva/pyva/pyva.java @@ -2,19 +2,17 @@ package net.rizon.acid.plugins.pyva.pyva; import java.util.Arrays; import java.util.Date; -import java.util.logging.Level; - import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Event; -import net.rizon.acid.core.Logger; import net.rizon.acid.core.Plugin; -import net.rizon.acid.core.Server; import net.rizon.acid.core.Timer; import net.rizon.acid.core.User; import net.rizon.acid.plugins.pyva.pyva.conf.Config; import net.rizon.pyva.Pyva; import net.rizon.pyva.PyvaException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; class PyvaEvent extends Event { @@ -113,7 +111,7 @@ class PyvaEvent extends Event } catch (Exception e) { - pyva.log.log(Level.WARNING, "Error executing pyva call", e); + pyva.log.warn("Error executing pyva call", e); } } } @@ -135,7 +133,7 @@ class GCTimer extends Timer public class pyva extends Plugin { - protected static final Logger log = Logger.getLogger(pyva.class.getName()); + protected static final Logger log = LoggerFactory.getLogger(pyva.class); private Config conf; private Timer t; @@ -186,7 +184,7 @@ public class pyva extends Plugin } catch (PyvaException e) { - log.log(Level.SEVERE, "Unable to unload pyva plugins", e); + log.error("Unable to unload pyva plugins", e); } pyva.stop(); diff --git a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/ExpireTimer.java b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/ExpireTimer.java index 55e990e..6471b19 100644 --- a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/ExpireTimer.java +++ b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/ExpireTimer.java @@ -3,7 +3,6 @@ package net.rizon.acid.plugins.trapbot; import java.util.Date; import java.util.Iterator; import java.util.Map; - import net.rizon.acid.core.Timer; class ExpireTimer extends Timer diff --git a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/ReleaseTimer.java b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/ReleaseTimer.java index bb2ea9d..86af32f 100644 --- a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/ReleaseTimer.java +++ b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/ReleaseTimer.java @@ -2,7 +2,6 @@ package net.rizon.acid.plugins.trapbot; import java.util.Date; import java.util.Random; - import net.rizon.acid.core.Message; import net.rizon.acid.core.Protocol; import net.rizon.acid.core.Timer; diff --git a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/RetrapTimer.java b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/RetrapTimer.java index 364ff3a..d2dbd99 100644 --- a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/RetrapTimer.java +++ b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/RetrapTimer.java @@ -1,7 +1,6 @@ package net.rizon.acid.plugins.trapbot; import java.util.Date; - import net.rizon.acid.core.Message; import net.rizon.acid.core.Protocol; import net.rizon.acid.core.Timer; diff --git a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/commands/Untrap.java b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/commands/Untrap.java index ab030f0..ce39ff4 100644 --- a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/commands/Untrap.java +++ b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/commands/Untrap.java @@ -5,7 +5,6 @@ import net.rizon.acid.core.AcidUser; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Channel; import net.rizon.acid.core.Command; -import net.rizon.acid.core.Protocol; import net.rizon.acid.core.User; import net.rizon.acid.plugins.trapbot.trapbot; diff --git a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/conf/Config.java b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/conf/Config.java index 394f574..2ed738d 100644 --- a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/conf/Config.java +++ b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/conf/Config.java @@ -1,7 +1,6 @@ package net.rizon.acid.plugins.trapbot.conf; import java.util.List; - import net.rizon.acid.conf.Client; import net.rizon.acid.conf.ConfigException; import net.rizon.acid.conf.Configuration; diff --git a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/trapbot.java b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/trapbot.java index d9d72ea..d8393f9 100644 --- a/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/trapbot.java +++ b/trapbot/src/main/java/net/rizon/acid/plugins/trapbot/trapbot.java @@ -1,20 +1,20 @@ package net.rizon.acid.plugins.trapbot; import java.util.HashMap; - import net.rizon.acid.core.AcidCore; import net.rizon.acid.core.AcidUser; import net.rizon.acid.core.Acidictive; import net.rizon.acid.core.Event; -import net.rizon.acid.core.Logger; import net.rizon.acid.core.Plugin; import net.rizon.acid.core.Timer; import net.rizon.acid.core.User; import net.rizon.acid.plugins.trapbot.conf.Config; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class trapbot extends Plugin { - protected static final Logger log = Logger.getLogger(trapbot.class.getName()); + protected static final Logger log = LoggerFactory.getLogger(trapbot.class); private Event ev; public static AcidUser trapbot;