我試圖做一個工具以存儲我們的日誌記錄信息,並只返回的某些部分格式化的文本文件。例如日誌文件看起來是這樣的:動態過濾文字顯示根據用戶輸入
[TimeStamp] <Config>: Configuration note is shown here
[TimeStamp] <Info>: Information is written here
[TimeStamp] <Info>: More Information
[TimeStamp] <Step>: A generated step is writing a message
[TimeStamp] <Warning>: A warning is logged
[TimeStamp] <Error>: An error has occurred
我想借此從文件中這段文字,並根據複選框中尖括號每個日誌消息類型,用戶可以隱藏他們不什麼不在乎看到。如取消選中「步驟」複選框將隱藏Step行,但如果他們要重新檢查它,它將重新出現在文本窗口中。
我試圖存儲每一行到被存儲在一個列表,以保持每行以一個字符串,但這種方法非常的改變文本非常緩慢。該方法如下所示
logTextbox.Text = "";
foreach (string line in CompleteLog) //CompleteLog is list containing each line in log file
{
if (CheckLine(line)) //Checks line based on what the user wants to see
{
WriteLine(line);
}
}
任何建議將是非常歡迎
編輯:
private bool CheckLine(string line)
{
int left = line.IndexOf('<');
int right = line.IndexOf(">:");
string logtype = line.Substring(left+1, right - left-1);
if (ValidLogs.Any(p => p.ToLower().Equals(logtype.ToLower())))
{
return true;
}
return false;
}
ValidLogs是包含的內容是允許的字符串列表是設置上的負載,並改變在對應於日誌類型的複選框的檢查事件上。上面的第一種方法用於加載和每個檢查事件來更新顯示內容。
多少行,你在你的日誌文件有哪些?你正在使用哪種圖形框架? – ppetrov 2013-02-22 00:22:52
另外,CheckLine如何實現?在我看來,這可能是問題的一部分。 – 2013-02-22 00:23:14
正在使用什麼來顯示線條?我能想到的一些方法,以完善的配套,但這看起來更像 – 2013-02-22 00:44:20