From bc20088f0fbe520c54b92ff028a37a7f531eb7b5 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Sat, 23 Jul 2016 00:37:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=AE=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- .../pw/yumc/Yum/inject/CommandInjector.java | 2 +- .../pw/yumc/Yum/inject/ListenerInjector.java | 5 ++--- .../java/pw/yumc/Yum/inject/TaskInjector.java | 5 ++--- .../pw/yumc/Yum/managers/ConfigManager.java | 4 ++++ .../pw/yumc/Yum/managers/MonitorManager.java | 19 ++++++++++++------- src/main/resources/monitor.yml | 4 +++- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/main/java/pw/yumc/Yum/inject/CommandInjector.java b/src/main/java/pw/yumc/Yum/inject/CommandInjector.java index f52b3af..bb8bc42 100644 --- a/src/main/java/pw/yumc/Yum/inject/CommandInjector.java +++ b/src/main/java/pw/yumc/Yum/inject/CommandInjector.java @@ -125,7 +125,7 @@ public class CommandInjector implements TabExecutor { sender.sendMessage("§6异常说明: §3" + e.getMessage()); MonitorCommand.lastError = e; MonitorManager.log(prefix + "§6玩家 §a" + sender.getName() + " §6执行 §b" + plugin.getName() + " §6插件 §d" + label + " " + StrKit.join(args, " ") + " §6命令时发生异常!"); - MonitorManager.print(e); + MonitorManager.printThrowable(e); } return false; } diff --git a/src/main/java/pw/yumc/Yum/inject/ListenerInjector.java b/src/main/java/pw/yumc/Yum/inject/ListenerInjector.java index 031995e..4469277 100644 --- a/src/main/java/pw/yumc/Yum/inject/ListenerInjector.java +++ b/src/main/java/pw/yumc/Yum/inject/ListenerInjector.java @@ -16,7 +16,6 @@ import org.bukkit.plugin.RegisteredListener; import org.bukkit.plugin.TimedRegisteredListener; import cn.citycraft.PluginHelper.ext.kit.Reflect; -import cn.citycraft.PluginHelper.kit.PluginKit; import pw.yumc.Yum.commands.MonitorCommand; import pw.yumc.Yum.managers.ConfigManager; import pw.yumc.Yum.managers.MonitorManager; @@ -65,7 +64,7 @@ public class ListenerInjector implements EventExecutor { Reflect.on(listener).set("executor", listenerInjector); } } catch (final Throwable e) { - PluginKit.sc(String.format(inject_error, plugin.getName(), listener.getClass().getName())); + MonitorManager.log(String.format(inject_error, plugin.getName(), listener.getClass().getName())); e.printStackTrace(); } } @@ -118,7 +117,7 @@ public class ListenerInjector implements EventExecutor { } MonitorCommand.lastError = e; MonitorManager.log(prefix + "§6插件 §b" + plugin.getName() + " §6处理 §d" + event.getEventName() + " §6事件时发生异常!"); - MonitorManager.print(e); + MonitorManager.printThrowable(e); } } diff --git a/src/main/java/pw/yumc/Yum/inject/TaskInjector.java b/src/main/java/pw/yumc/Yum/inject/TaskInjector.java index c45f077..4fc7730 100644 --- a/src/main/java/pw/yumc/Yum/inject/TaskInjector.java +++ b/src/main/java/pw/yumc/Yum/inject/TaskInjector.java @@ -9,7 +9,6 @@ import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scheduler.BukkitTask; import cn.citycraft.PluginHelper.ext.kit.Reflect; -import cn.citycraft.PluginHelper.kit.PluginKit; import cn.citycraft.PluginHelper.kit.StrKit; import pw.yumc.Yum.commands.MonitorCommand; import pw.yumc.Yum.managers.MonitorManager; @@ -52,7 +51,7 @@ public class TaskInjector implements Runnable { } } } catch (final Throwable e) { - PluginKit.sc(String.format(inject_error, plugin.getName())); + MonitorManager.log(String.format(inject_error, plugin.getName())); } } @@ -98,7 +97,7 @@ public class TaskInjector implements Runnable { } MonitorCommand.lastError = e; MonitorManager.log(prefix + "§6插件 §b" + plugin.getName() + " §6执行 §d" + taskName + " §6任务时发生异常!"); - MonitorManager.print(e); + MonitorManager.printThrowable(e); } } diff --git a/src/main/java/pw/yumc/Yum/managers/ConfigManager.java b/src/main/java/pw/yumc/Yum/managers/ConfigManager.java index 4db071e..446de89 100644 --- a/src/main/java/pw/yumc/Yum/managers/ConfigManager.java +++ b/src/main/java/pw/yumc/Yum/managers/ConfigManager.java @@ -68,6 +68,10 @@ public class ConfigManager { return network.getBoolean("AllowPrimaryThread", false); } + public boolean isLogToFile() { + return monitor.getBoolean("LogToFile"); + } + public boolean isMainThreadCheck() { return thread.getBoolean("MainThreadCheck", true); } diff --git a/src/main/java/pw/yumc/Yum/managers/MonitorManager.java b/src/main/java/pw/yumc/Yum/managers/MonitorManager.java index d8acaf3..345241b 100644 --- a/src/main/java/pw/yumc/Yum/managers/MonitorManager.java +++ b/src/main/java/pw/yumc/Yum/managers/MonitorManager.java @@ -22,6 +22,7 @@ public class MonitorManager { public static String prefix = "§6[§bYum §a能耗监控§6] "; public static int lagTime = 20; public static boolean debug = ConfigManager.i().isMonitorDebug(); + public static boolean log_to_file = ConfigManager.i().isLogToFile(); private static Map monitor = new HashMap<>(); private static Map task = new HashMap<>(); @@ -54,21 +55,25 @@ public class MonitorManager { } public static void lagTip(final String message) { - LogKit.DEFAULT.logSender(prefix + message); + log(prefix + message); } public static void log(final String message) { - LogKit.DEFAULT.logSender(message); + if (log_to_file) { + LogKit.DEFAULT.logSender(message); + } else { + PluginKit.sc(message); + } } - public static void print(final Throwable e) { - LogKit.DEFAULT.logSender("§6异常名称: §c" + e.getClass().getName()); - LogKit.DEFAULT.logSender("§6异常说明: §3" + e.getMessage()); - LogKit.DEFAULT.logSender("§6简易错误信息如下:"); + public static void printThrowable(final Throwable e) { + log("§6异常名称: §c" + e.getClass().getName()); + log("§6异常说明: §3" + e.getMessage()); + log("§6简易错误信息如下:"); final int l = e.getStackTrace().length > 5 ? 5 : e.getStackTrace().length; for (int i = 0; i < l; i++) { final StackTraceElement ste = e.getStackTrace()[i]; - LogKit.DEFAULT.logSender(" §e位于 §c" + ste.getClassName() + "." + ste.getMethodName() + "(§4" + ste.getFileName() + ":" + ste.getLineNumber() + "§c)"); + log(" §e位于 §c" + ste.getClassName() + "." + ste.getMethodName() + "(§4" + ste.getFileName() + ":" + ste.getLineNumber() + "§c)"); } if (debug) { PluginKit.sc("§c开发人员调试信息如下:"); diff --git a/src/main/resources/monitor.yml b/src/main/resources/monitor.yml index ef784c3..930f851 100644 --- a/src/main/resources/monitor.yml +++ b/src/main/resources/monitor.yml @@ -3,12 +3,14 @@ ############################ #配置版本号 请勿修改!!! -Version: 1.2 +Version: 1.3 #是否开启 Enable: true #是否显示开发人员信息 Debug: false +#是否保存Lag日志到文件 +LogToFile: true #忽略检测列表 Ignore: - PluginHelper \ No newline at end of file