大家好我有日志文件,其中每个例外都是分开的,如
----------------------------------------------- -------------------------------------------------- ------------------------ Demo :::: 24-0A-64-C7-E5-57 :::: 2015/7/8 6 :54:37 PM ::::申请 信息:DemoApp,Version = 1.3.1.1,Culture = neutral,PublicKeyToken = null 错误消息:拒绝访问路径“C:\ ProgramData \ Temp.txt”。 在文件名中的第95行 功能中的c:\ Users \ user \ desktop \ PC_CleanerDemo \ App_Code \ Global.cs 命名UpateXML -------------------------------------------------- -------------------------------------------------- -------------------------- Demo :::: 0C-84-DC-1C-E8-23 :::: 7/8 / 2015 11:01:44 PM :::: 应用信息:DemoApp,Version = 1.3.1.1,Culture = neutral, PublicKeyToken = null错误消息:操作已超时。在 文件名中的行号189 功能中的c:\ Users \ user \ desktop \ PC_CleanerDemo \ App_Code \ Global.cs 名称DownloadFile。
在上面给定的行中,每个异常现在由' - '字符分隔,因为日志现在有行数,所以我想在不同的.txt文件中放置不同类型的异常。我想在C#中解决。如果有人可以提供帮助,我会感激他。
答案 0 :(得分:1)
取决于日志格式。 如果您已经修复并等于' - '然后在每个分隔符中执行以下操作:
var sep = "------------------------------------------------------------------------------------------------------------------------------";
var logArray = LogText.Split(new string[] { sep }, StringSplitOptions.None);
并将logArray的每个元素保存在不同的文件中。
如果你有不同的' - ' - '在分隔符中,除了分隔符之外,它们不在日志文本中,而是执行以下操作:
while (logText.Contains("--"))
logText = logText.Replace("--","-");
var logArray= logText.Split('-');
并将logArray的每个元素保存在不同的文件中或使用正则表达式。请更正VS中的语法。写在记事本中,所以不确定粘贴它会完美地运作。
答案 1 :(得分:1)
您也可以使用Regex.Split
string logText = @"-------------------------------------------------------------------------------------------------------------------------
Demo:::: 24-0A-64-C7-E5-57 :::: 7/8/2015 6:54:37 PM :::: Application Info: DemoApp, Version=1.3.1.1, Culture=neutral, PublicKeyToken=null Error Message: Access to the path 'C:\ProgramData\Temp.txt' is denied. at Line Number 95 in File Name c:\Users\user\desktop\PC_CleanerDemo\App_Code\Global.cs in Function Name UpateXML
------------------------------------------------------------------------------------------------------------------------------
Demo:::: 0C-84-DC-1C-E8-23 :::: 7/8/2015 11:01:44 PM :::: Application Info: DemoApp, Version=1.3.1.1, Culture=neutral, PublicKeyToken=null Error Message: The operation has timed out. at Line Number 189 in File Name c:\Users\user\desktop\PC_CleanerDemo\App_Code\Global.cs in Function Name DownloadFile.";
string patten = @"\s*-{50,}\s*";
foreach (var str in Regex.Split(logText, patten))
{
if (str.Length > 0)
{
Console.WriteLine("***************************");
Console.WriteLine(str);
}
}