【发布时间】:2014-11-26 00:01:19
【问题描述】:
我有两个计划任务写入同一个 log4net 日志文件。
当一项任务正在运行时,它会成功写入日志文件。但是,当两者都在运行时;第一个启动会写入日志文件,第二个启动不会。
每个应用程序必须有一个日志文件吗?我已阅读文档但找不到答案。
【问题讨论】:
我有两个计划任务写入同一个 log4net 日志文件。
当一项任务正在运行时,它会成功写入日志文件。但是,当两者都在运行时;第一个启动会写入日志文件,第二个启动不会。
每个应用程序必须有一个日志文件吗?我已阅读文档但找不到答案。
【问题讨论】:
如果你真的想从两个进程写入同一个文件,可以使用different locking model而不是默认值来允许这样做。以下是 log4net 中现有的模型:
所以绝对有可能让多个进程写入同一个文件而不会丢失信息。但是,正如 COLD TOLD 所说和 log4net 文档所建议的那样:
所有锁定策略都有问题,你应该认真考虑 使用避免多个进程的不同策略 记录到同一个文件。
【讨论】:
是的,这是最好的方法,除非您只运行一个应用程序并期望另一个应用程序不运行,而一个应用程序正在使用另一个应用程序可能不会写入的文件,因此您需要按顺序使用线程池为了控制访问每个日志的应用程序或创建单独的日志文件,我个人会在这种情况下使用数据库。
【讨论】: