feat: 完成 SimpleLogger

This commit is contained in:
2024-07-06 13:31:29 +08:00
parent a0ae6ec550
commit b6e6641041
20 changed files with 338 additions and 308 deletions

View File

@@ -1,10 +1,12 @@
package cn.hamster3.mc.plugin.core.bungee;
import cn.hamster3.mc.plugin.core.bungee.api.CoreBungeeAPI;
import cn.hamster3.mc.plugin.core.bungee.util.BungeeSimpleLogger;
import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.common.config.ConfigSection;
import cn.hamster3.mc.plugin.core.common.config.YamlConfig;
import cn.hamster3.mc.plugin.core.common.util.UpdateCheckUtils;
import com.zaxxer.hikari.HikariDataSource;
import lombok.Getter;
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
import net.md_5.bungee.api.ProxyServer;
@@ -18,24 +20,25 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.logging.Level;
import java.util.logging.Logger;
public class HamsterCorePlugin extends Plugin {
@Getter
private static HamsterCorePlugin instance;
@Getter
private static BungeeSimpleLogger simpleLogger;
@Getter
private BungeeAudiences audienceProvider;
@Override
public void onLoad() {
instance = this;
simpleLogger = new BungeeSimpleLogger(this);
long start = System.currentTimeMillis();
Logger logger = getLogger();
logger.info("仓鼠核心正在初始化");
simpleLogger.info("仓鼠核心正在初始化");
try {
File dataFolder = getDataFolder();
if (dataFolder.mkdir()) {
logger.info("已生成插件存档文件夹");
simpleLogger.info("已生成插件存档文件夹");
}
File configFile = new File(dataFolder, "config.yml");
if (!configFile.exists()) {
@@ -46,40 +49,42 @@ public class HamsterCorePlugin extends Plugin {
}
}
CoreBungeeAPI.init(configFile);
logger.info("已初始化 CoreAPI");
simpleLogger.info("已初始化 CoreAPI");
} catch (Exception e) {
logger.log(Level.WARNING, "初始化 CoreAPI 出错", e);
simpleLogger.log(Level.WARNING, "初始化 CoreAPI 出错", e);
}
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心初始化完成,总计耗时 " + time + " ms");
simpleLogger.info("仓鼠核心初始化完成,总计耗时 " + time + " ms");
}
@Override
public void onEnable() {
long start = System.currentTimeMillis();
Logger logger = getLogger();
logger.info("仓鼠核心正在启动");
simpleLogger.info("仓鼠核心正在启动");
audienceProvider = BungeeAudiences.create(this);
logger.info("已创建 AudienceProvider");
simpleLogger.info("已创建 AudienceProvider");
CoreAPI.getInstance().getExecutorService().submit(this::checkUpdate);
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心启动完成,总计耗时 " + time + " ms");
simpleLogger.info("仓鼠核心启动完成,总计耗时 " + time + " ms");
}
@Override
public void onDisable() {
long start = System.currentTimeMillis();
Logger logger = getLogger();
CoreAPI.getInstance().getJedisPool().close();
logger.info("已关闭 Redis 连接池");
CoreAPI.getInstance().getHikariDataSource().close();
logger.info("已关闭数据库连接池");
if (CoreAPI.getInstance().isEnableRedis()) {
CoreAPI.getInstance().getJedisPool().close();
simpleLogger.info("已关闭 Redis 连接池");
}
if (CoreAPI.getInstance().isEnableDatabase()) {
((HikariDataSource) CoreAPI.getInstance().getDataSource()).close();
simpleLogger.info("已关闭数据库连接池");
}
CoreAPI.getInstance().getExecutorService().shutdownNow();
logger.info("已关闭 ExecutorService 线程池");
simpleLogger.info("已关闭 ExecutorService 线程池");
CoreAPI.getInstance().getScheduledService().shutdownNow();
logger.info("已关闭 ScheduledExecutorService 线程池");
simpleLogger.info("已关闭 ScheduledExecutorService 线程池");
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心已关闭,总计耗时 " + time + " ms");
simpleLogger.info("仓鼠核心已关闭,总计耗时 " + time + " ms");
}
private void checkUpdate() {

View File

@@ -1,6 +1,7 @@
package cn.hamster3.mc.plugin.core.bungee.api;
import cn.hamster3.mc.plugin.core.bungee.HamsterCorePlugin;
import cn.hamster3.mc.plugin.core.bungee.util.BungeeSimpleLogger;
import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.common.config.ConfigSection;
import cn.hamster3.mc.plugin.core.common.config.YamlConfig;
@@ -15,7 +16,6 @@ import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
@SuppressWarnings("unused")
public final class CoreBungeeAPI extends CoreAPI {
@@ -51,8 +51,8 @@ public final class CoreBungeeAPI extends CoreAPI {
}
@Override
public @NotNull Logger getLogger() {
return HamsterCorePlugin.getInstance().getLogger();
public @NotNull BungeeSimpleLogger getLogger() {
return HamsterCorePlugin.getSimpleLogger();
}
@Override

View File

@@ -1,100 +0,0 @@
package cn.hamster3.mc.plugin.core.bungee.util;
import lombok.Getter;
import net.md_5.bungee.api.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;
@Getter
@SuppressWarnings("unused")
public class BungeePluginLogger {
@NotNull
private final Plugin plugin;
@NotNull
private final Logger logger;
public BungeePluginLogger(@NotNull Plugin plugin) {
this.plugin = plugin;
logger = plugin.getLogger();
}
public void log(@NotNull Level level, @NotNull String msg) {
logger.log(level, msg);
}
public void log(@NotNull Level level, @NotNull String msg, @NotNull Object... args) {
try {
logger.log(level, String.format(msg, args));
} catch (Exception e) {
logger.log(Level.WARNING, "输出日志 " + msg + " 时遇到一个异常");
logger.log(Level.WARNING, "日志参数: " + Arrays.toString(args));
logger.log(Level.WARNING, "异常信息: ", e);
}
}
public void log(@NotNull Level level, @NotNull Throwable throwable, @NotNull String msg) {
logger.log(level, msg, throwable);
}
public void log(@NotNull Level level, @NotNull Throwable throwable, @NotNull String msg, @NotNull Object... args) {
try {
logger.log(level, String.format(msg, args), throwable);
} catch (Exception e) {
logger.log(Level.WARNING, "输出日志 " + msg + " 时遇到一个异常");
logger.log(Level.WARNING, "日志参数: " + Arrays.toString(args));
logger.log(Level.WARNING, "异常参数: ", throwable);
logger.log(Level.WARNING, "异常信息: ", e);
}
}
public void info(@NotNull String msg) {
log(Level.INFO, msg);
}
public void info(@NotNull String msg, @NotNull Object... args) {
log(Level.INFO, msg, args);
}
public void info(@NotNull Throwable throwable, @NotNull String msg) {
log(Level.INFO, throwable, msg);
}
public void info(@NotNull Throwable throwable, @NotNull String msg, @NotNull Object... args) {
log(Level.INFO, throwable, msg, args);
}
public void warn(@NotNull String msg) {
log(Level.WARNING, msg);
}
public void warn(@NotNull String msg, @NotNull Object... args) {
log(Level.WARNING, msg, args);
}
public void warn(@NotNull Throwable throwable, @NotNull String msg) {
log(Level.WARNING, throwable, msg);
}
public void warn(@NotNull Throwable throwable, @NotNull String msg, @NotNull Object... args) {
log(Level.WARNING, throwable, msg, args);
}
public void error(@NotNull String msg) {
log(Level.SEVERE, msg);
}
public void error(@NotNull String msg, @NotNull Object... args) {
log(Level.SEVERE, msg, args);
}
public void error(@NotNull Throwable throwable, @NotNull String msg) {
log(Level.SEVERE, throwable, msg);
}
public void error(@NotNull Throwable throwable, @NotNull String msg, @NotNull Object... args) {
log(Level.SEVERE, throwable, msg, args);
}
}

View File

@@ -0,0 +1,38 @@
package cn.hamster3.mc.plugin.core.bungee.util;
import cn.hamster3.mc.plugin.core.common.util.SimpleLogger;
import lombok.Getter;
import net.md_5.bungee.api.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
import java.util.logging.Level;
import java.util.logging.Logger;
@Getter
@SuppressWarnings("unused")
public class BungeeSimpleLogger extends SimpleLogger {
@NotNull
private final Plugin plugin;
@NotNull
private final Logger logger;
public BungeeSimpleLogger(@NotNull Plugin plugin) {
this.plugin = plugin;
logger = plugin.getLogger();
}
@Override
public void log(@NotNull Level level, @NotNull String msg) {
logger.log(level, msg);
}
@Override
public void log(@NotNull Level level, @NotNull Throwable throwable) {
logger.log(level, "", throwable);
}
@Override
public void log(@NotNull Level level, @NotNull Throwable throwable, @NotNull String msg) {
logger.log(level, msg, throwable);
}
}