Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 79 lines 3.5 kB view raw
1package net.minecraft.server; 2 3import com.legacyminecraft.poseidon.PoseidonConfig; 4import org.bukkit.craftbukkit.util.ShortConsoleLogFormatter; 5import org.bukkit.craftbukkit.util.TerminalConsoleHandler; 6 7import java.io.File; 8import java.time.LocalDate; 9import java.time.format.DateTimeFormatter; 10import java.util.logging.*; 11 12// CraftBukkit start 13// CraftBukkit end 14 15public class ConsoleLogManager { 16 17 public static Logger a = Logger.getLogger("Minecraft"); 18 public static Logger global = Logger.getLogger(""); // CraftBukkit 19 20 public ConsoleLogManager() { 21 } 22 23 // CraftBukkit - change of method signature! 24 public static void init(MinecraftServer server) { 25 ConsoleLogFormatter consolelogformatter = new ConsoleLogFormatter(); 26 27 a.setUseParentHandlers(false); 28 // CraftBukkit start 29 ConsoleHandler consolehandler = new TerminalConsoleHandler(server.reader); 30 31 for (Handler handler : global.getHandlers()) { 32 global.removeHandler(handler); 33 } 34 35 consolehandler.setFormatter(new ShortConsoleLogFormatter(server)); 36 global.addHandler(consolehandler); 37 // CraftBukkit end 38 39 a.addHandler(consolehandler); 40 41 try { 42 //Project Poseidon Start 43 FileHandler filehandler; 44 if ((boolean) PoseidonConfig.getInstance().getConfigOption("settings.per-day-log-file.enabled")) { 45 //If latest log file is enabled, create a new log file for each day 46 if ((boolean) PoseidonConfig.getInstance().getConfigOption("settings.per-day-log-file.latest-log.enabled")) { 47 String latestLogFileName = "latest"; 48 File log = new File("." + File.separator + "logs" + File.separator); 49 log.getParentFile().mkdirs(); 50 log.mkdirs(); 51 filehandler = new FileHandler("." + File.separator + "logs" + File.separator + latestLogFileName + ".log", true); 52 } else { 53 //If latest log file is disabled, create a new log file for each day with the date as the file name 54 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); 55 String logfile = LocalDate.now().format(formatter); 56 File log = new File("." + File.separator + "logs" + File.separator); 57 log.getParentFile().mkdirs(); 58 log.mkdirs(); 59 filehandler = new FileHandler("." + File.separator + "logs" + File.separator + logfile + ".log", true); 60 } 61 } else { 62 // CraftBukkit start 63 String pattern = (String) server.options.valueOf("log-pattern"); 64 int limit = ((Integer) server.options.valueOf("log-limit")).intValue(); 65 int count = ((Integer) server.options.valueOf("log-count")).intValue(); 66 boolean append = ((Boolean) server.options.valueOf("log-append")).booleanValue(); 67 filehandler = new FileHandler(pattern, limit, count, append); 68 // CraftBukkit start 69 } 70 //Project Poseidon End 71 72 filehandler.setFormatter(consolelogformatter); 73 a.addHandler(filehandler); 74 global.addHandler(filehandler); // CraftBukkit 75 } catch (Exception exception) { 76 a.log(Level.WARNING, "Failed to log to server.log", exception); 77 } 78 } 79}