Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}