繁体   English   中英

将同一应用程序的两个实例写入同一日志文件

[英]Write to same log file two instances of the same application

如何从同一个应用程序的两个实例写入同一文件。 对于write,我使用TraceSource类和System.Diagnostis命名空间中的TraceEvent方法。 我尝试使用Mutex创建方法进行写入,但我的方法无法正常工作。 我找不到使用互斥锁进行TraceSource日志记录的示例。 有谁能够帮助我?

我的日志类:

public class LoggerTraceSource
 {
   private readonly TraceSource traceSource = new TraceSource();

  public void InfoTraceEvent(string message, int level)
        {
            traceSource.TraceEvent(TraceEventType.Information, level, message);
        }
 }

在我的应用程序中,我使用InfoTraceEvent写入日志文件。 如何更改InfoTraceEvent以进行线程写入(由两个应用程序实例写入)?

我在这里做一些ESP诊断,因为我不知道症状是什么。 我猜你有process1.exe和process2.exe,每个都有相同的system.diagnostics部分,即写入同一个文件。

只要process1.exe开始写入跟踪文件,它就会在进程持续时间内保持锁定状态。 当process2.exe尝试写入同一文件时,它将为新文件生成一个名称,如file13.txt

此行为可能因听众而异。 例如,如果您编写一个自定义侦听器,阻止尝试写入锁定文件,那么您将看到该行为。

我建议写入2个不同的文件或使用自定义侦听器在每次写入后关闭文件句柄。 当两个进程碰巧尝试同时打开文件时,这将需要重新尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM