From dbc45985ce6201e4d3f15a658b7acbf74dd3c357 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 11 Jan 2020 20:09:20 -0500 Subject: [PATCH] Added log file --- core/src/mindustry/ClientLauncher.java | 3 +- core/src/mindustry/Vars.java | 39 +++++++++++++++---- gradle.properties | 2 +- .../src/mindustry/server/ServerControl.java | 8 ++-- .../src/mindustry/server/ServerLauncher.java | 4 +- 5 files changed, 41 insertions(+), 15 deletions(-) diff --git a/core/src/mindustry/ClientLauncher.java b/core/src/mindustry/ClientLauncher.java index bc9e2f0663..1925f51d0f 100644 --- a/core/src/mindustry/ClientLauncher.java +++ b/core/src/mindustry/ClientLauncher.java @@ -11,7 +11,7 @@ import arc.scene.ui.layout.*; import arc.util.*; import arc.util.async.*; import mindustry.core.*; -import mindustry.ctype.Content; +import mindustry.ctype.*; import mindustry.game.EventType.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -33,6 +33,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform @Override public void setup(){ Vars.loadLogger(); + Vars.loadFileLogger(); Vars.platform = this; beginTime = Time.millis(); diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 80e6241e09..a1b508916d 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -1,13 +1,14 @@ package mindustry; -import arc.*; import arc.Application.*; +import arc.*; import arc.assets.*; -import arc.struct.*; import arc.files.*; import arc.graphics.*; import arc.scene.ui.layout.*; +import arc.struct.*; import arc.util.*; +import arc.util.Log.*; import arc.util.io.*; import mindustry.ai.*; import mindustry.core.*; @@ -21,10 +22,11 @@ import mindustry.gen.*; import mindustry.input.*; import mindustry.maps.*; import mindustry.mod.*; -import mindustry.net.*; import mindustry.net.Net; +import mindustry.net.*; import mindustry.world.blocks.defense.ForceProjector.*; +import java.io.*; import java.nio.charset.*; import java.util.*; @@ -35,7 +37,7 @@ public class Vars implements Loadable{ /** Whether to load locales.*/ public static boolean loadLocales = true; /** Whether the logger is loaded. */ - public static boolean loadedLogger = false; + public static boolean loadedLogger = false, loadedFileLogger = false; /** Maximum schematic size.*/ public static final int maxSchematicSize = 32; /** All schematic base64 starts with this string.*/ @@ -282,9 +284,10 @@ public class Vars implements Loadable{ String[] stags = {"&lc&fb[D]", "&lg&fb[I]", "&ly&fb[W]", "&lr&fb[E]", ""}; Array logBuffer = new Array<>(); - Log.setLogger((level, text, args) -> { - String result = Log.format(text, args); - System.out.println(Log.format(stags[level.ordinal()] + "&fr " + text, args)); + Log.setLogger((level, text) -> { + String result = text; + String rawText = Log.format(stags[level.ordinal()] + "&fr " + text); + System.out.println(rawText); result = tags[level.ordinal()] + " " + result; @@ -300,6 +303,28 @@ public class Vars implements Loadable{ loadedLogger = true; } + public static void loadFileLogger(){ + if(loadedFileLogger) return; + + Core.settings.setAppName(appName); + + Writer writer = settings.getDataDirectory().child("last_log.txt").writer(false); + LogHandler log = Log.getLogger(); + Log.setLogger(((level, text) -> { + log.log(level, text); + + try{ + writer.write("[" + Character.toUpperCase(level.name().charAt(0)) +"] " + Log.removeCodes(text) + "\n"); + writer.flush(); + }catch(IOException e){ + e.printStackTrace(); + //ignore it + } + })); + + loadedFileLogger = true; + } + public static void loadSettings(){ Core.settings.setAppName(appName); diff --git a/gradle.properties b/gradle.properties index be8675575f..9bf3052aaf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=a4d492223bec8586254a009f4805642e0e5e018f +archash=145648d83c4659f727ea8b6676006747b87e7716 diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index c62abff162..e32a5b302d 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -66,17 +66,17 @@ public class ServerControl implements ApplicationListener{ "globalrules", "{reactorExplosions: false}" ); - Log.setLogger((level, text, args1) -> { - String result = "[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level.ordinal()] + " " + text + "&fr", args1); + Log.setLogger((level, text) -> { + String result = "[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level.ordinal()] + " " + text + "&fr"); System.out.println(result); if(Config.logging.bool()){ - logToFile("[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level.ordinal()] + " " + text + "&fr", false, args1)); + logToFile("[" + dateTime.format(LocalDateTime.now()) + "] " + formatColors(tags[level.ordinal()] + " " + text + "&fr", false)); } if(socketOutput != null){ try{ - socketOutput.println(format(text + "&fr", false, args1)); + socketOutput.println(formatColors(text + "&fr", false)); }catch(Throwable e){ err("Error occurred logging to socket: {0}", e.getClass().getSimpleName()); } diff --git a/server/src/mindustry/server/ServerLauncher.java b/server/src/mindustry/server/ServerLauncher.java index 28738ceb7e..8b668ae669 100644 --- a/server/src/mindustry/server/ServerLauncher.java +++ b/server/src/mindustry/server/ServerLauncher.java @@ -29,8 +29,8 @@ public class ServerLauncher implements ApplicationListener{ Vars.platform = new Platform(){}; Vars.net = new Net(platform.getNet()); - Log.setLogger((level, text, args1) -> { - String result = "[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level.ordinal()] + " " + text + "&fr", args1); + Log.setLogger((level, text) -> { + String result = "[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level.ordinal()] + " " + text + "&fr"); System.out.println(result); }); new HeadlessApplication(new ServerLauncher(), null, throwable -> CrashSender.send(throwable, f -> {}));