添加项目文件。
This commit is contained in:
42
Logger/LoggerHelper.cs
Normal file
42
Logger/LoggerHelper.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Logger
|
||||
{
|
||||
public static class LoggerHelper
|
||||
{
|
||||
public static readonly ILogger Logger = LogManager.GetLogger("InfoLogger");
|
||||
public static readonly ILogger sqlLogger = LogManager.GetLogger("SqlLogger");
|
||||
|
||||
// 解析堆栈,找到项目文件路径和行号
|
||||
public static string GetProjectStackLine(string stackTrace)
|
||||
{
|
||||
if (string.IsNullOrEmpty(stackTrace))
|
||||
return "未知位置";
|
||||
|
||||
var lines = stackTrace.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
foreach (var line in lines)
|
||||
{
|
||||
// 匹配你项目的命名空间路径
|
||||
if (line.Contains("BaseFrame"))
|
||||
{
|
||||
// 提取 "in 文件路径:line 行号"
|
||||
var match = Regex.Match(line, @"in (.+?):line (\d+)");
|
||||
if (match.Success)
|
||||
{
|
||||
return match.Value; // 返回类似 C:\...\MainViewModel.cs:line 37
|
||||
}
|
||||
return line.Trim();
|
||||
}
|
||||
}
|
||||
|
||||
return lines[0].Trim(); // 如果找不到就返回第一条
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user