From 936cbad67d918d27b17643fbf4c85a3e6f0d547d Mon Sep 17 00:00:00 2001 From: RednedEpic Date: Wed, 4 Mar 2020 20:35:23 -0600 Subject: [PATCH] Get log4j2 working and fix commands --- bootstrap/standalone/pom.xml | 28 ++++++- .../standalone/console/GeyserLogger.java | 79 ++++--------------- .../resources/log4j2.component.properties | 1 - .../standalone/src/main/resources/log4j2.xml | 21 +++++ .../standalone/src/main/resources/log4j2.yml | 20 ----- .../connector/command/GeyserCommandMap.java | 4 +- .../command/GeyserConsoleCommandSender.java | 41 ---------- .../command/defaults/HelpCommand.java | 2 +- 8 files changed, 67 insertions(+), 129 deletions(-) delete mode 100644 bootstrap/standalone/src/main/resources/log4j2.component.properties create mode 100644 bootstrap/standalone/src/main/resources/log4j2.xml delete mode 100644 bootstrap/standalone/src/main/resources/log4j2.yml delete mode 100644 connector/src/main/java/org/geysermc/connector/command/GeyserConsoleCommandSender.java diff --git a/bootstrap/standalone/pom.xml b/bootstrap/standalone/pom.xml index 800a79c3..7c271339 100644 --- a/bootstrap/standalone/pom.xml +++ b/bootstrap/standalone/pom.xml @@ -90,6 +90,13 @@ org.apache.maven.plugins maven-shade-plugin 3.2.1 + + + com.github.edwgiz + maven-shade-plugin.log4j2-cachefile-transformer + 2.8.1 + + package @@ -97,10 +104,29 @@ shade - true + false + + + + *:* + + META-INF/versions/9/module-info.class + + + + + + org.geysermc.platform.standalone.GeyserBootstrap + + + + + ${project.build.directory}/dependency-reduced-pom.xml + diff --git a/bootstrap/standalone/src/main/java/org/geysermc/platform/standalone/console/GeyserLogger.java b/bootstrap/standalone/src/main/java/org/geysermc/platform/standalone/console/GeyserLogger.java index 3ec11cc0..cac40b56 100644 --- a/bootstrap/standalone/src/main/java/org/geysermc/platform/standalone/console/GeyserLogger.java +++ b/bootstrap/standalone/src/main/java/org/geysermc/platform/standalone/console/GeyserLogger.java @@ -25,75 +25,20 @@ package org.geysermc.platform.standalone.console; -import io.sentry.Sentry; - import lombok.extern.log4j.Log4j2; import net.minecrell.terminalconsole.SimpleTerminalConsole; +import org.apache.logging.log4j.core.config.Configurator; import org.geysermc.common.ChatColor; import org.geysermc.common.logger.IGeyserLogger; import org.geysermc.connector.GeyserConnector; -import org.geysermc.connector.command.GeyserConsoleCommandSender; - -import java.io.File; -import java.io.IOException; -import java.util.Date; -import java.util.logging.*; +import org.geysermc.connector.command.CommandSender; @Log4j2 -public class GeyserLogger extends SimpleTerminalConsole implements IGeyserLogger { +public class GeyserLogger extends SimpleTerminalConsole implements IGeyserLogger, CommandSender { private boolean colored = true; - private boolean debug = false; - - public GeyserLogger() { - ConsoleHandler consoleHandler = new ConsoleHandler(); - consoleHandler.setLevel(Level.INFO); - consoleHandler.setFormatter(new SimpleFormatter() { - private static final String format = "[%1$tT][%2$-5s] %3$s %n"; - - @Override - public synchronized String format(LogRecord lr) { - return String.format(format, - new Date(lr.getMillis()), - lr.getLevel().getLocalizedName(), - lr.getMessage() - ); - } - }); - - try { - File logDir = new File("logs"); - logDir.mkdir(); - File logFile = new File(logDir, "latest.log"); - int maxLogFileSize = 20;//Mo - if (logFile.exists() && (logFile.length()) > maxLogFileSize * 1024L * 1024L) - this.warning("Your log file is larger than " + maxLogFileSize + "Mo, you should backup and clean it !"); - FileHandler fileHandler = new FileHandler(logFile.getCanonicalPath(), true); - fileHandler.setLevel(Level.INFO); - fileHandler.setFormatter(new SimpleFormatter() { - private static final String format = "[%1$tF %1$tT][%2$-5s] %3$s %n"; - - @Override - public synchronized String format(LogRecord lr) { - return String.format(format, - new Date(lr.getMillis()), - lr.getLevel().getLocalizedName(), - lr.getMessage() - ); - } - }); - } catch (IOException | SecurityException ex) { - Logger.getLogger(GeyserLogger.class.getName()).log(Level.SEVERE, null, ex); - } - - if (System.getenv().containsKey("DP_SENTRY_CLIENT_KEY")) { - Handler sentryHandler = new io.sentry.jul.SentryHandler(); - sentryHandler.setLevel(Level.SEVERE); - Sentry.init(System.getenv().get("DP_SENTRY_CLIENT_KEY")); - } - } @Override protected boolean isRunning() { @@ -102,8 +47,7 @@ public class GeyserLogger extends SimpleTerminalConsole implements IGeyserLogger @Override protected void runCommand(String line) { - GeyserConsoleCommandSender sender = new GeyserConsoleCommandSender(); - GeyserConnector.getInstance().getCommandMap().runCommand(sender, line); + GeyserConnector.getInstance().getCommandMap().runCommand(this, line); } @Override @@ -143,8 +87,7 @@ public class GeyserLogger extends SimpleTerminalConsole implements IGeyserLogger @Override public void debug(String message) { - if (debug) - log.info(printConsole(ChatColor.GRAY + message, colored)); + log.debug(printConsole(ChatColor.GRAY + message, colored)); } public static String printConsole(String message, boolean colors) { @@ -153,6 +96,16 @@ public class GeyserLogger extends SimpleTerminalConsole implements IGeyserLogger @Override public void setDebug(boolean debug) { - this.debug = debug; + Configurator.setLevel(log.getName(), debug ? org.apache.logging.log4j.Level.DEBUG : log.getLevel()); + } + + @Override + public String getName() { + return "CONSOLE"; + } + + @Override + public void sendMessage(String message) { + info(message); } } diff --git a/bootstrap/standalone/src/main/resources/log4j2.component.properties b/bootstrap/standalone/src/main/resources/log4j2.component.properties deleted file mode 100644 index ed03a2b8..00000000 --- a/bootstrap/standalone/src/main/resources/log4j2.component.properties +++ /dev/null @@ -1 +0,0 @@ -log4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector \ No newline at end of file diff --git a/bootstrap/standalone/src/main/resources/log4j2.xml b/bootstrap/standalone/src/main/resources/log4j2.xml new file mode 100644 index 00000000..95741540 --- /dev/null +++ b/bootstrap/standalone/src/main/resources/log4j2.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bootstrap/standalone/src/main/resources/log4j2.yml b/bootstrap/standalone/src/main/resources/log4j2.yml deleted file mode 100644 index c839ef8d..00000000 --- a/bootstrap/standalone/src/main/resources/log4j2.yml +++ /dev/null @@ -1,20 +0,0 @@ -Configuration: - Appenders: - TerminalConsole: - PatternLayout: - pattern: "%cyan{%d{HH:mm:ss}} [%style{%highlight{%-5level}{STYLE=Logback}}] %minecraftFormatting{%msg}%n" - name: Console - RollingRandomAccessFile: - PatternLayout: - pattern: "%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level - %msg%n" - Policies: - TimeBasedTriggeringPolicy: "" - OnStartupTriggeringPolicy: "" - name: File - fileName: "logs/server.log" - filePattern: "logs/%d{yyyy-MM-dd}-%i.log.gz" - Loggers: - Root: - level: error - AppenderRef: - ref: Console \ No newline at end of file diff --git a/connector/src/main/java/org/geysermc/connector/command/GeyserCommandMap.java b/connector/src/main/java/org/geysermc/connector/command/GeyserCommandMap.java index 6a8e1680..7172622c 100644 --- a/connector/src/main/java/org/geysermc/connector/command/GeyserCommandMap.java +++ b/connector/src/main/java/org/geysermc/connector/command/GeyserCommandMap.java @@ -61,7 +61,7 @@ public class GeyserCommandMap { } public void runCommand(CommandSender sender, String command) { - if (!command.startsWith("/geyser ")) + if (!command.startsWith("geyser ")) return; command = command.trim(); @@ -80,7 +80,7 @@ public class GeyserCommandMap { GeyserCommand cmd = commandMap.get(label); if (cmd == null) { - connector.getLogger().warning("Invalid Command! Try /help for a list of commands."); + connector.getLogger().error("Invalid Command! Try /geyser help for a list of commands."); return; } diff --git a/connector/src/main/java/org/geysermc/connector/command/GeyserConsoleCommandSender.java b/connector/src/main/java/org/geysermc/connector/command/GeyserConsoleCommandSender.java deleted file mode 100644 index 20b2f973..00000000 --- a/connector/src/main/java/org/geysermc/connector/command/GeyserConsoleCommandSender.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org - * - * 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, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 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. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * @author GeyserMC - * @link https://github.com/GeyserMC/Geyser - */ - -package org.geysermc.connector.command; - -import org.geysermc.common.ChatColor; - -public class GeyserConsoleCommandSender implements CommandSender { - - @Override - public String getName() { - return "CONSOLE"; - } - - @Override - public void sendMessage(String message) { - System.out.println(ChatColor.toANSI(message + ChatColor.RESET)); - } -} diff --git a/connector/src/main/java/org/geysermc/connector/command/defaults/HelpCommand.java b/connector/src/main/java/org/geysermc/connector/command/defaults/HelpCommand.java index 6964b9a3..4fa0068a 100644 --- a/connector/src/main/java/org/geysermc/connector/command/defaults/HelpCommand.java +++ b/connector/src/main/java/org/geysermc/connector/command/defaults/HelpCommand.java @@ -52,7 +52,7 @@ public class HelpCommand extends GeyserCommand { Collections.sort(commands); for (String cmd : commands) { - sender.sendMessage(ChatColor.YELLOW + "/" + cmd + ChatColor.WHITE + ": " + cmds.get(cmd).getDescription()); + sender.sendMessage(ChatColor.YELLOW + "/geyser " + cmd + ChatColor.WHITE + ": " + cmds.get(cmd).getDescription()); } } }