添加日志和修改文本输出

This commit is contained in:
zs-yg
2025-11-22 20:03:12 +08:00
parent 306a7bb309
commit 59b7c84310
6 changed files with 46 additions and 9 deletions

View File

@@ -16,7 +16,7 @@ namespace MCSJ
Console.WriteLine($"日志目录: {logDir}"); Console.WriteLine($"日志目录: {logDir}");
LogMain.Debug($"日志文件: {LogCreator.GetLogFilePath()}"); LogMain.Debug($"日志文件: {LogCreator.GetLogFilePath()}");
LogMain.Info("MC服务器下载工具启动"); LogMain.Info("MC服务器启动工具启动");
var httpClient = new HttpClient { var httpClient = new HttpClient {
Timeout = TimeSpan.FromMinutes(5), Timeout = TimeSpan.FromMinutes(5),
DefaultRequestHeaders = { { "User-Agent", "MCSJ-JRE-Downloader" } } DefaultRequestHeaders = { { "User-Agent", "MCSJ-JRE-Downloader" } }
@@ -28,9 +28,9 @@ namespace MCSJ
while (true) while (true)
{ {
Console.WriteLine("MC服务器下载工具"); Console.WriteLine("MC服务器启动工具");
Console.WriteLine("1. 显示所有版本"); Console.WriteLine("1. 显示所有服务器版本");
Console.WriteLine("2. 下载指定版本"); Console.WriteLine("2. 下载指定服务器版本");
Console.WriteLine("3. 下载JRE"); Console.WriteLine("3. 下载JRE");
Console.WriteLine("4. 查看已安装的JRE"); Console.WriteLine("4. 查看已安装的JRE");
Console.WriteLine("5. 退出"); Console.WriteLine("5. 退出");

View File

@@ -2,6 +2,7 @@ using System;
using System.IO; using System.IO;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using MCSJ.Tools.LogSystem;
namespace MCSJ.Tools namespace MCSJ.Tools
{ {
@@ -21,6 +22,7 @@ namespace MCSJ.Tools
if (string.IsNullOrWhiteSpace(version)) if (string.IsNullOrWhiteSpace(version))
{ {
Console.WriteLine("版本名称不能为空"); Console.WriteLine("版本名称不能为空");
LogMain.Error("版本名称不能为空");
return; return;
} }
@@ -28,6 +30,7 @@ namespace MCSJ.Tools
if (string.IsNullOrEmpty(url)) if (string.IsNullOrEmpty(url))
{ {
Console.WriteLine($"版本 {version} 不存在"); Console.WriteLine($"版本 {version} 不存在");
LogMain.Error($"版本 {version} 不存在");
return; return;
} }
@@ -47,10 +50,12 @@ namespace MCSJ.Tools
if (!Directory.Exists(profilePath)) if (!Directory.Exists(profilePath))
break; break;
Console.WriteLine($"文件夹 '{targetFolder}' 已存在,请重新输入(直接回车则取消下载):"); Console.WriteLine($"文件夹 '{targetFolder}' 已存在,请重新输入(直接回车则取消下载):");
LogMain.Warn($"文件夹 '{targetFolder}' 已存在,请重新输入(直接回车则取消下载):");
} }
if (Directory.Exists(profilePath)) if (Directory.Exists(profilePath))
{ {
Console.WriteLine("下载已取消。"); Console.WriteLine("下载已取消。");
LogMain.Info("下载已取消。");
return; return;
} }
Directory.CreateDirectory(profilePath); Directory.CreateDirectory(profilePath);
@@ -59,6 +64,7 @@ namespace MCSJ.Tools
try try
{ {
Console.WriteLine($"开始下载 {version} 到 {profilePath} ..."); Console.WriteLine($"开始下载 {version} 到 {profilePath} ...");
LogMain.Info($"开始下载 {version} 到 {profilePath} ...");
var response = await _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead); var response = await _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
@@ -90,10 +96,12 @@ namespace MCSJ.Tools
} }
} }
Console.WriteLine($"\n{version} 下载完成! 文件已保存到 {jarPath}"); Console.WriteLine($"\n{version} 下载完成! 文件已保存到 {jarPath}");
LogMain.Info($"{version} 下载完成! 文件已保存到 {jarPath}");
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"下载失败: {ex.Message}"); Console.WriteLine($"下载失败: {ex.Message}");
LogMain.Error($"下载失败: {ex.Message}");
} }
} }
} }

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using MCSJ.Tools.LogSystem;
namespace MCSJ.Tools namespace MCSJ.Tools
{ {
@@ -19,6 +20,7 @@ namespace MCSJ.Tools
{ {
var filePath = Path.Combine("resources", "serverlist.txt"); var filePath = Path.Combine("resources", "serverlist.txt");
Console.WriteLine($"尝试从路径加载版本列表: {Path.GetFullPath(filePath)}"); Console.WriteLine($"尝试从路径加载版本列表: {Path.GetFullPath(filePath)}");
LogMain.Info($"尝试从路径加载版本列表: {Path.GetFullPath(filePath)}");
if (!File.Exists(filePath)) if (!File.Exists(filePath))
{ {
@@ -42,7 +44,8 @@ namespace MCSJ.Tools
if (string.IsNullOrEmpty(version) || string.IsNullOrEmpty(url)) if (string.IsNullOrEmpty(version) || string.IsNullOrEmpty(url))
{ {
Console.WriteLine($"忽略无效条目: {rawLine} (版本或URL为空)"); Console.WriteLine($"忽略无效条目: {rawLine} (版本或URL为空)");
LogMain.Warn($"忽略无效条目: {rawLine} (版本或URL为空)");
continue; continue;
} }
@@ -51,6 +54,7 @@ namespace MCSJ.Tools
else else
{ {
Console.WriteLine($"忽略无效条目: {rawLine} (缺少冒号分隔或格式不正确)"); Console.WriteLine($"忽略无效条目: {rawLine} (缺少冒号分隔或格式不正确)");
LogMain.Warn($"忽略无效条目: {rawLine} (缺少冒号分隔或格式不正确)");
} }
} }
@@ -60,12 +64,15 @@ namespace MCSJ.Tools
} }
Console.WriteLine($"成功加载 {_versions.Count} 个版本"); Console.WriteLine($"成功加载 {_versions.Count} 个版本");
LogMain.Info($"成功加载 {_versions.Count} 个版本");
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"加载版本列表失败: {ex.Message}"); Console.WriteLine($"加载版本列表失败: {ex.Message}");
Console.WriteLine($"当前工作目录: {Directory.GetCurrentDirectory()}"); Console.WriteLine($"当前工作目录: {Directory.GetCurrentDirectory()}");
Console.WriteLine("请确保serverlist.txt每行格式为: 版本名:下载URL (版本名可以包含空格),支持以#开头的注释"); Console.WriteLine("请确保serverlist.txt每行格式为: 版本名:下载URL (版本名可以包含空格),支持以#开头的注释");
LogMain.Error($"加载版本列表失败: {ex.Message}");
LogMain.Error($"当前工作目录: {Directory.GetCurrentDirectory()}");
} }
} }
@@ -75,10 +82,12 @@ namespace MCSJ.Tools
if (!File.Exists(filePath)) if (!File.Exists(filePath))
{ {
Console.WriteLine("版本列表文件不存在"); Console.WriteLine("版本列表文件不存在");
LogMain.Error("版本列表文件不存在");
return; return;
} }
Console.WriteLine("可用版本列表:"); Console.WriteLine("可用版本列表:");
LogMain.Info("可用版本列表:");
foreach (var version in _versions.Keys) foreach (var version in _versions.Keys)
{ {
Console.WriteLine(version); Console.WriteLine(version);

View File

@@ -1,5 +1,6 @@
using System; using System;
using System.IO; using System.IO;
using MCSJ.Tools.LogSystem;
namespace MCSJ.Tools.JreDownload namespace MCSJ.Tools.JreDownload
{ {
@@ -33,6 +34,7 @@ namespace MCSJ.Tools.JreDownload
if (percentage == 100) if (percentage == 100)
{ {
Console.WriteLine(); Console.WriteLine();
LogMain.Info("JRE下载完成");
} }
} }
finally finally

View File

@@ -4,6 +4,7 @@ using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.IO.Compression; using System.IO.Compression;
using MCSJ.Tools.LogSystem;
namespace MCSJ.Tools.JreDownload namespace MCSJ.Tools.JreDownload
{ {
@@ -25,6 +26,7 @@ namespace MCSJ.Tools.JreDownload
if (CheckJreExists(version)) if (CheckJreExists(version))
{ {
Console.WriteLine($"JRE {version} 已存在,无需重复下载"); Console.WriteLine($"JRE {version} 已存在,无需重复下载");
LogMain.Info($"JRE {version} 已存在,无需重复下载");
return; return;
} }
@@ -33,6 +35,7 @@ namespace MCSJ.Tools.JreDownload
if (string.IsNullOrEmpty(downloadUrl)) if (string.IsNullOrEmpty(downloadUrl))
{ {
Console.WriteLine($"找不到版本 {version} 的下载链接"); Console.WriteLine($"找不到版本 {version} 的下载链接");
LogMain.Error($"找不到版本 {version} 的下载链接");
return; return;
} }
@@ -42,6 +45,7 @@ namespace MCSJ.Tools.JreDownload
if (string.IsNullOrEmpty(tempZipPath)) if (string.IsNullOrEmpty(tempZipPath))
{ {
Console.WriteLine("下载失败"); Console.WriteLine("下载失败");
LogMain.Error("下载失败");
return; return;
} }
@@ -50,6 +54,7 @@ namespace MCSJ.Tools.JreDownload
if (!ExtractJre(tempZipPath, jreFolder)) if (!ExtractJre(tempZipPath, jreFolder))
{ {
Console.WriteLine("解压失败"); Console.WriteLine("解压失败");
LogMain.Error("解压失败");
return; return;
} }
@@ -60,6 +65,7 @@ namespace MCSJ.Tools.JreDownload
if (javaExePath == null || javawExePath == null) if (javaExePath == null || javawExePath == null)
{ {
Console.WriteLine("找不到java.exe或javaw.exe"); Console.WriteLine("找不到java.exe或javaw.exe");
LogMain.Error("找不到java.exe或javaw.exe");
return; return;
} }
@@ -69,7 +75,8 @@ namespace MCSJ.Tools.JreDownload
// 6. 清理临时文件 // 6. 清理临时文件
File.Delete(tempZipPath); File.Delete(tempZipPath);
Console.WriteLine($"JRE {version} 安装完成"); Console.WriteLine($"JRE {version} 安装完成");
LogMain.Info($"JRE {version} 安装完成");
} }
private string? GetDownloadUrl(string version) private string? GetDownloadUrl(string version)
@@ -99,18 +106,22 @@ namespace MCSJ.Tools.JreDownload
if (!Uri.IsWellFormedUriString(url, UriKind.Absolute)) if (!Uri.IsWellFormedUriString(url, UriKind.Absolute))
{ {
Console.WriteLine($"无效的下载URL: {url}"); Console.WriteLine($"无效的下载URL: {url}");
LogMain.Error($"无效的下载URL: {url}");
return null; return null;
} }
Console.WriteLine($"正在准备下载 {url}..."); Console.WriteLine($"正在准备下载 {url}...");
LogMain.Info($"正在准备下载 {url}...");
var response = await _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead); var response = await _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode(); response.EnsureSuccessStatusCode();
var totalBytes = response.Content.Headers.ContentLength ?? 0; var totalBytes = response.Content.Headers.ContentLength ?? 0;
Console.WriteLine($"文件总大小: {totalBytes} 字节"); Console.WriteLine($"文件总大小: {totalBytes} 字节");
LogMain.Info($"文件总大小: {totalBytes} 字节");
long bytesRead = 0; long bytesRead = 0;
var lastReportTime = DateTime.MinValue; var lastReportTime = DateTime.MinValue;
Console.WriteLine("开始下载..."); Console.WriteLine("开始下载...");
LogMain.Info("开始下载...");
using (var stream = await response.Content.ReadAsStreamAsync()) using (var stream = await response.Content.ReadAsStreamAsync())
using (var fileStream = new FileStream(tempPath, FileMode.Create)) using (var fileStream = new FileStream(tempPath, FileMode.Create))
@@ -139,6 +150,7 @@ namespace MCSJ.Tools.JreDownload
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"下载失败: {ex.Message}"); Console.WriteLine($"下载失败: {ex.Message}");
LogMain.Error($"下载失败: {ex.Message}");
return null; return null;
} }
} }
@@ -157,6 +169,7 @@ namespace MCSJ.Tools.JreDownload
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"解压失败: {ex.Message}"); Console.WriteLine($"解压失败: {ex.Message}");
LogMain.Error($"解压失败: {ex.Message}");
return false; return false;
} }
} }

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using MCSJ.Tools.LogSystem;
namespace MCSJ.Tools.ViewJre namespace MCSJ.Tools.ViewJre
{ {
@@ -16,6 +17,7 @@ namespace MCSJ.Tools.ViewJre
if (!File.Exists(tomlPath)) if (!File.Exists(tomlPath))
{ {
Console.WriteLine("没有安装任何JRE"); Console.WriteLine("没有安装任何JRE");
LogMain.Info("没有安装任何JRE");
return; return;
} }
@@ -29,11 +31,13 @@ namespace MCSJ.Tools.ViewJre
if (versions.Count == 0) if (versions.Count == 0)
{ {
Console.WriteLine("没有安装任何JRE"); Console.WriteLine("没有安装任何JRE");
return; LogMain.Info("没有安装任何JRE");
return;
} }
Console.WriteLine("已安装的JRE版本:"); Console.WriteLine("已安装的JRE版本:");
LogMain.Info("已安装的JRE版本:");
foreach (var version in versions) foreach (var version in versions)
{ {
Console.WriteLine(version); // 直接输出版本号,不带前缀 Console.WriteLine(version); // 直接输出版本号,不带前缀
@@ -42,6 +46,7 @@ namespace MCSJ.Tools.ViewJre
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"读取JRE列表失败: {ex.Message}"); Console.WriteLine($"读取JRE列表失败: {ex.Message}");
LogMain.Error($"读取JRE列表失败: {ex.Message}");
} }
} }
} }