我们在另一台服务器上创建了日志文件,并使用连续添加状态和错误日志
using (StreamWriter sw = File.AppendText(path))
{
}
这些都在远程Windows机器上,我们通常会经历远程连接和通过记事本读取文件的乏味过程。因此,我正在考虑创建一个应用程序,以便在本地复制文件(使用类似File.Copy()
的东西),或者查看文件的当前快照或逐行查看(使用类似于FileInfo(path).OpenText().ReadLine()
或.ReadToEnd()
的东西)。
我的问题是,如果我进行这些读取,是否会有问题或冲突导致正在运行的记录器出现异常?记录器集成到主服务应用程序中,我不想因为读取日志文件而使我们的服务崩溃。
理论上,对于"fine"的某些含义,它应该是"fine"。
File.AppendText()
返回的StreamWriter
使用FileShare.Read
打开文件,这允许其他进程读取该文件,即使该文件已打开进行写入。在轮询端,您需要确保使用FileShare.Write
打开文件,以允许其他进程(例如日志记录进程)打开文件,即使您已经打开文件进行读取。
当然,您可能会时不时地读取部分数据。所以我想这在一定程度上取决于你对"冲突"的定义但至少可以在不导致记录器抛出异常的情况下使其工作。