我们正在尝试对使用 NLog 使用文件目标进行日志记录的 ASP.NET Core MVC 应用程序进行负载平衡。负载平衡设置将具有多个应用程序服务器,并且计划将日志存储在网络驱动器中。我们正在以下链接中审查性能调整选项
https://github.com/NLog/NLog/wiki/File-target
并提出以下配置。
<targets async="true">
<target type="File" name="logfile" fileName="${basedir}/logs/${level}.txt" keepFileOpen="false" networkWrites ="true" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile" />
</rules>
有什么办法可以优化配置吗?任何建议都将受到高度赞赏
提前致谢
keepFileOpen="false"
和 networkWrites="true"
具有相同的含义,NLog-project 正在将 networkWrites 标记为过时,以删除重复的逻辑。所以你应该只使用keepFileOpen="false"
。
如果多个应用程序要写入同一日志文件路径,那么您还应该启用
concurrentWrites="true"
,因为它将应用 concurrentWriteAttempts="10"
。因此,当共享日志文件被其他应用程序暂时锁定以进行日志写入时,将应用重试逻辑。
但是应用
<targets async="true">
以避免受到网络中断的打击是个好主意。