记录器不能完全用于商务谈话解决方案

时间:2017-02-03 09:05:55

标签: logging log4net biztalk

我在我的项目中面临一个奇怪的问题。有一个解决方案说S1。在解决方案中有一个biztalk项目说P1和一个帮助库项目。在帮助库项目中我们有一个用于创建日志的类文件。 现在又有一个解决方案说S2。在这个解决方案中,我们还有两个biztalk项目。分别说P2和P3这些biztalk项目参考了之前的项目以及帮助库。 现在问题是我能够为P2项目创建日志,但不能为P3项目创建日志。

任何人都可以指导我为什么会发生这种情况吗?

提前完成。

1 个答案:

答案 0 :(得分:0)

我猜您正在登录同一个文件。如果是这样,最好的解决方案是写入不同的文件。另一种选择是在日志文件上使用不同的锁定模型。

此示例显示如何配置appender以使用允许多个进程写入同一文件的最小锁定模型。

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="${TMP}\log-file.txt" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>

此示例显示如何配置appender以使用“进程间”锁定模型。确保所有记录器都使用相同的锁定模型。

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file value="${TMP}\log-file.txt" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+InterProcessLock" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>