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

@@ -4,6 +4,7 @@ import cn.hamster3.mc.plugin.core.common.api.CoreAPI;
import cn.hamster3.mc.plugin.core.common.config.YamlConfig;
import cn.hamster3.mc.plugin.core.common.util.UpdateCheckUtils;
import cn.hamster3.mc.plugin.core.velocity.api.CoreVelocityAPI;
import cn.hamster3.mc.plugin.core.velocity.util.VelocitySimpleLogger;
import com.google.inject.Inject;
import com.velocitypowered.api.event.PostOrder;
import com.velocitypowered.api.event.Subscribe;
@@ -36,25 +37,22 @@ public class HamsterCorePlugin {
@Getter
private static HamsterCorePlugin instance;
@Getter
private final java.util.logging.Logger logger;
@Getter
private final Logger slf4jLogger;
private final VelocitySimpleLogger simpleLogger;
@Getter
private final ProxyServer proxyServer;
@Getter
private final File dataFolder;
@Inject
public HamsterCorePlugin(Logger slf4jLogger, ProxyServer proxyServer, @DataDirectory Path dataPath) {
logger = java.util.logging.Logger.getLogger("hamster-core");
this.slf4jLogger = slf4jLogger;
public HamsterCorePlugin(Logger logger, ProxyServer proxyServer, @DataDirectory Path dataPath) {
this.simpleLogger = new VelocitySimpleLogger(logger);
this.proxyServer = proxyServer;
dataFolder = dataPath.toFile();
instance = this;
long start = System.currentTimeMillis();
try {
if (dataFolder.mkdir()) {
slf4jLogger.info("已生成插件存档文件夹");
simpleLogger.info("已生成插件存档文件夹");
}
File configFile = new File(dataFolder, "config.yml");
if (!configFile.exists()) {
@@ -65,38 +63,40 @@ public class HamsterCorePlugin {
}
}
CoreVelocityAPI.init(configFile);
slf4jLogger.info("已初始化 CoreAPI");
simpleLogger.info("已初始化 CoreAPI");
} catch (Exception e) {
slf4jLogger.error("初始化 CoreAPI 出错", e);
simpleLogger.error("初始化 CoreAPI 出错", e);
}
long time = System.currentTimeMillis() - start;
slf4jLogger.info("仓鼠核心初始化完成,总计耗时 " + time + " ms");
simpleLogger.info("仓鼠核心初始化完成,总计耗时 " + time + " ms");
}
@Subscribe(order = PostOrder.FIRST)
public void onProxyInitialization(ProxyInitializeEvent event) {
long start = System.currentTimeMillis();
slf4jLogger.info("仓鼠核心正在启动");
simpleLogger.info("仓鼠核心正在启动");
CoreAPI.getInstance().getExecutorService().submit(this::checkUpdate);
long time = System.currentTimeMillis() - start;
slf4jLogger.info("仓鼠核心启动完成,总计耗时 " + time + " ms");
simpleLogger.info("仓鼠核心启动完成,总计耗时 " + time + " ms");
}
@Subscribe(order = PostOrder.LAST)
public void onProxyShutdown(ProxyShutdownEvent event) {
long start = System.currentTimeMillis();
CoreAPI.getInstance().getJedisPool().close();
slf4jLogger.info("已关闭 Redis 连接池");
if (CoreAPI.getInstance().getDataSource() instanceof HikariDataSource dataSource) {
dataSource.close();
slf4jLogger.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();
slf4jLogger.info("已关闭 ExecutorService 线程池");
simpleLogger.info("已关闭 ExecutorService 线程池");
CoreAPI.getInstance().getScheduledService().shutdownNow();
slf4jLogger.info("已关闭 ScheduledExecutorService 线程池");
simpleLogger.info("已关闭 ScheduledExecutorService 线程池");
long time = System.currentTimeMillis() - start;
slf4jLogger.info("仓鼠核心关闭完成,总计耗时 " + time + " ms");
simpleLogger.info("仓鼠核心关闭,总计耗时 " + time + " ms");
}
private void checkUpdate() {

View File

@@ -8,6 +8,7 @@ import cn.hamster3.mc.plugin.core.common.impl.ComponentTypeAdapter;
import cn.hamster3.mc.plugin.core.common.impl.MessageTypeAdapter;
import cn.hamster3.mc.plugin.core.velocity.HamsterCorePlugin;
import cn.hamster3.mc.plugin.core.velocity.impl.AudienceProviderImpl;
import cn.hamster3.mc.plugin.core.velocity.util.VelocitySimpleLogger;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import net.kyori.adventure.platform.AudienceProvider;
@@ -16,7 +17,6 @@ import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
@SuppressWarnings("unused")
public final class CoreVelocityAPI extends CoreAPI {
@@ -57,8 +57,8 @@ public final class CoreVelocityAPI extends CoreAPI {
}
@Override
public @NotNull Logger getLogger() {
return HamsterCorePlugin.getInstance().getLogger();
public @NotNull VelocitySimpleLogger getLogger() {
return HamsterCorePlugin.getInstance().getSimpleLogger();
}
@Override

View File

@@ -0,0 +1,57 @@
package cn.hamster3.mc.plugin.core.velocity.util;
import cn.hamster3.mc.plugin.core.common.util.SimpleLogger;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import java.util.logging.Level;
@Getter
public class VelocitySimpleLogger extends SimpleLogger {
@NotNull
private final Logger logger;
public VelocitySimpleLogger(@NotNull Logger logger) {
this.logger = logger;
}
@Override
public void log(@NotNull Level level, @NotNull String msg) {
if (level == Level.INFO) {
logger.info(msg);
} else if (level == Level.WARNING) {
logger.warn(msg);
} else if (level == Level.SEVERE) {
logger.error(msg);
} else {
logger.trace(msg);
}
}
@Override
public void log(@NotNull Level level, @NotNull Throwable throwable) {
if (level == Level.INFO) {
logger.info("", throwable);
} else if (level == Level.WARNING) {
logger.warn("", throwable);
} else if (level == Level.SEVERE) {
logger.error("", throwable);
} else {
logger.trace("", throwable);
}
}
@Override
public void log(@NotNull Level level, @NotNull Throwable throwable, @NotNull String msg) {
if (level == Level.INFO) {
logger.info(msg, throwable);
} else if (level == Level.WARNING) {
logger.warn(msg, throwable);
} else if (level == Level.SEVERE) {
logger.error(msg, throwable);
} else {
logger.trace(msg, throwable);
}
}
}