Log4Net和从并行实例记录

Aki*_*lov 11 parallel-processing logging log4net fileappender

我在我的项目中使用log4net,有一个问题.该程序的主要功能需要很长时间,我使用日志记录来保存有关它的信息.我使用FileAppender将日志保存到文件.

我的应用程序位于共享(本地)文件夹中,可能有多个应用程序实例从一个路径运行.在这种情况下,我只能从第一个程序记录信息,我的应用程序的其他实例无法记录信息,因为日志文件已被锁定.

当我使用"log4net.Appender.FileAppender + MinimalLock"选项时,会出现信息丢失的情况.并非所有来自两个实例的日志都保存到文件中.

如何从并行实例中解决此问题和日志信息?当我使用"MinimalLock"选项时性能下降呢?

谢谢.希望得到你的帮助.

nak*_*hli 18

只需在日志文件名中包含应用程序的进程ID即可.然后,您应用的不同实例将登录到不同的文件.这是一个例子:

<appender name="MyRollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file type="log4net.Util.PatternString">
    <conversionPattern value="log_%processid.log" />
  </file>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)

  • 其他注意事项:**请务必小心**不要错过`type =“ log4net.Util.PatternString”`属性,否则它将不起作用! (2认同)