好的我正在制作一个必须满足以下要求的日志查看器。
开始捕获文件末尾的日志条目而不是开始(因此只有新内容被添加到我的查看器中)。目前它从一开始就开始。
日志查看器正在读取日志文件时,不会锁定日志文件。目前它在日志查看器正在运行时锁定日志文件。
不在焦点时滚动到底部,但允许我在焦点时滚动。目前它自动滚动到底部无论是否焦点...这意味着我必须停止日志输出才能滚动。当新信息仍然写在底部时,我需要能够向上滚动富文本框。
这是我更新的代码片段...(有些变量在这个块之外被实例化了......不用担心它们,你应该能够看到我想要做什么。)
if (_log_type == "server_log")
{
FileStream _log_stream = new FileStream("C:\\server_history.log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader _stream_reader = new StreamReader(_log_stream);
time_stamp = DateTime.Now.ToString();
_log_display_box.AppendText("\r\nBegin Log Capture @ " + time_stamp + "\r\n\r\n");
while (_log_is_paused == false)
{
_log_display_box.AppendText(_stream_reader.ReadToEnd());
_log_display_box.ScrollToCaret();
await Task.Delay(50);
}
time_stamp = DateTime.Now.ToString();
_log_display_box.AppendText("\r\n\r\nEnd Log Capture @ " + time_stamp + "\r\n");
}