improve:改进了日志输出

This commit is contained in:
CJK_mkp
2025-06-10 16:48:45 +08:00
parent 9b1d9c117e
commit 85d98c0b70
7 changed files with 44 additions and 21 deletions
+29 -18
View File
@@ -1,5 +1,7 @@
using System; using System;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Threading;
namespace Ink_Canvas.Helpers namespace Ink_Canvas.Helpers
{ {
@@ -14,24 +16,19 @@ namespace Ink_Canvas.Helpers
public static void NewLog(Exception ex) public static void NewLog(Exception ex)
{ {
if (ex == null) return;
var stackTrace = ex.StackTrace ?? "<no stack trace>";
var msg = $"[Exception] Type: {ex.GetType().FullName}\nMessage: {ex.Message}\nStackTrace: {stackTrace}";
if (ex.InnerException != null)
{
msg += $"\nInnerException: {ex.InnerException.GetType().FullName} - {ex.InnerException.Message}\n{ex.InnerException.StackTrace}";
}
WriteLogToFile(msg, LogType.Error);
} }
public static void WriteLogToFile(string str, LogType logType = LogType.Info) public static void WriteLogToFile(string str, LogType logType = LogType.Info)
{ {
string strLogType = "Info"; string strLogType = logType.ToString();
switch (logType)
{
case LogType.Event:
strLogType = "Event";
break;
case LogType.Trace:
strLogType = "Trace";
break;
case LogType.Error:
strLogType = "Error";
break;
}
try try
{ {
var file = App.RootPath + LogFile; var file = App.RootPath + LogFile;
@@ -39,16 +36,30 @@ namespace Ink_Canvas.Helpers
{ {
Directory.CreateDirectory(App.RootPath); Directory.CreateDirectory(App.RootPath);
} }
StreamWriter sw = new StreamWriter(file, true); var threadId = Thread.CurrentThread.ManagedThreadId;
sw.WriteLine(string.Format("{0} [{1}] {2}", DateTime.Now.ToString("O"), strLogType, str)); var callingMethod = new StackTrace(2, true).GetFrame(0);
sw.Close(); string callerInfo = "<unknown>";
if (callingMethod != null)
{
var method = callingMethod.GetMethod();
if (method != null)
{
var className = method.DeclaringType != null ? method.DeclaringType.FullName : "<no class>";
callerInfo = $"{className}.{method.Name}";
}
}
string logLine = string.Format("{0} [T{1}] [{2}] [{3}] {4}", DateTime.Now.ToString("O"), threadId, strLogType, callerInfo, str);
using (StreamWriter sw = new StreamWriter(file, true))
{
sw.WriteLine(logLine);
}
} }
catch { } catch { }
} }
internal static void WriteLogToFile(string v, object warning) internal static void WriteLogToFile(string v, object warning)
{ {
throw new NotImplementedException(); WriteLogToFile($"[Warning] {v}", LogType.Warning);
} }
public enum LogType public enum LogType
+1 -1
View File
@@ -106,7 +106,7 @@
<Viewbox Margin="0,10"> <Viewbox Margin="0,10">
<ui:SymbolIcon Symbol="Globe" Foreground="White"/> <ui:SymbolIcon Symbol="Globe" Foreground="White"/>
</Viewbox> </Viewbox>
<TextBlock Text="调用外部点名" Foreground="White" FontSize="22" Margin="-1,-1,4,0" VerticalAlignment="Center"/> <TextBlock Text="ClassIsland点名" Foreground="White" FontSize="18" Margin="-1,-1,4,0" VerticalAlignment="Center"/>
</ui:SimpleStackPanel> </ui:SimpleStackPanel>
</Border> </Border>
</ui:SimpleStackPanel> </ui:SimpleStackPanel>
+12
View File
@@ -207,8 +207,20 @@ namespace Ink_Canvas {
Close(); Close();
} }
private bool isIslandCallerFirstClick = true;
private void BorderBtnIslandCaller_MouseUp(object sender, MouseButtonEventArgs e) private void BorderBtnIslandCaller_MouseUp(object sender, MouseButtonEventArgs e)
{ {
if (isIslandCallerFirstClick)
{
MessageBox.Show(
"首次使用ClassIsland点名功能,请确保已安装ClassIsland和Island caller插件。\n" +
"如未安装,请前往官网下载并安装后再使用。",
"提示", MessageBoxButton.OK, MessageBoxImage.Information);
isIslandCallerFirstClick = false;
return;
}
try try
{ {
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
@@ -1,4 +1,4 @@
#pragma checksum "..\..\..\..\Windows\RandWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "695B3561F1F2C3284724BFAA9122C85C2EF5221A" #pragma checksum "..\..\..\..\Windows\RandWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "A29F1514A9DC6332F074303F230464CD5C24A898"
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// 此代码由工具生成。 // 此代码由工具生成。
@@ -1,4 +1,4 @@
#pragma checksum "..\..\..\..\Windows\RandWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "695B3561F1F2C3284724BFAA9122C85C2EF5221A" #pragma checksum "..\..\..\..\Windows\RandWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "A29F1514A9DC6332F074303F230464CD5C24A898"
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// 此代码由工具生成。 // 此代码由工具生成。