捕获文本框中的日志文件输出

时间:2014-07-17 18:28:19

标签: c# .net winforms

好的我正在制作一个必须满足以下要求的日志查看器。

  1. 开始捕获文件末尾的日志条目而不是开始(因此只有新内容被添加到我的查看器中)。目前它从一开始就开始。

  2. 日志查看器正在读取日志文件时,不会锁定日志文件。目前它在日志查看器正在运行时锁定日志文件。

  3. 不在焦点时滚动到底部,但允许我在焦点时滚动。目前它自动滚动到底部无论是否焦点...这意味着我必须停止日志输出才能滚动。当新信息仍然写在底部时,我需要能够向上滚动富文本框。

  4. 这是我更新的代码片段...(有些变量在这个块之外被实例化了......不用担心它们,你应该能够看到我想要做什么。)

    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");
    }
    

0 个答案:

没有答案