0

我有 Windows 窗体应用程序,它每天使用这种文件名格式写入日志

yyyy-mm-dd-appName.log

这些设置是 EntLib 开箱即用的。我只有一个跟踪侦听器。问题是,如果运行应用程序的用户打开 .log 文件,比如在记事本或其他编辑器中,并且应用程序再次运行,则文件名的 GUID 如下所示

8989dsf908dsfds9900.log

我猜这是 EntLib 使用的临时名称,因为应用程序和记事本都在使用该文件。当用户在记事本中关闭文件时,文件名仍然是 GUID。所以在日志文件夹中有一堆带有这些 GUID 的文件。

可以做些什么来解决这个问题吗?问候。

4

1 回答 1

0

正如Randy Levy在此链接中所说:这是由 System.Diagnostics 中的文件锁定引起的。您获得多个文件的原因是当用户打开日志文件时,这会导致文件独占锁定。此外,每个跟踪侦听器都尝试在日志记录过程中以独占方式锁定(或将尝试锁定)同一个文件,并且当它无法获得锁定时,它将创建一个带有 GUID 前缀的新文件。

于 2013-08-06T03:22:19.510 回答