我们在另一台服务器上创建日志文件,并使用以下命令连续添加状态和错误日志:
using (StreamWriter sw = File.AppendText(path))
{
}
这些是在远程Windows机器上,我们通常会经历远程连接和通过记事本读取文件的繁琐过程。所以我在考虑创建一个应用程序,以便在本地复制文件(使用File.Copy()
之类的东西)或查看文件'当前快照或逐行(使用FileInfo(path).OpenText().ReadLine()
或.ReadToEnd()
)。
我的问题是,如果我执行任何这些读取,是否会出现可能导致运行记录器异常的问题或冲突?记录器已集成到主服务应用程序中,因为读取日志文件,我不想让我们的服务崩溃。
答案 0 :(得分:1)
从理论上讲,它应该是“好的”,对于“#34;罚款”的某些含义。
StreamWriter
返回的File.AppendText()
打开FileShare.Read
文件,允许其他进程读取文件,即使文件已打开也可以写入。在您的轮询结束时,您需要确保使用FileShare.Write
打开文件,以允许其他进程(例如日志记录过程)打开文件,即使您已经打开文件进行阅读。 / p>
当然,您可能会不时地阅读部分数据。所以我想这在某种程度上取决于你对"冲突"的定义。 :)但是应该可以至少让它工作而不会导致记录器抛出异常。