Vb.net 一个适用于多个应用程序的log4net日志文件
我有两个计划任务,它们写入同一个log4net日志文件 当一个任务正在运行时,它会成功地写入日志文件。然而,当两者都在运行时;第一个启动将写入日志文件,第二个启动将不写入Vb.net 一个适用于多个应用程序的log4net日志文件,vb.net,log4net,Vb.net,Log4net,我有两个计划任务,它们写入同一个log4net日志文件 当一个任务正在运行时,它会成功地写入日志文件。然而,当两者都在运行时;第一个启动将写入日志文件,第二个启动将不写入 每个应用程序都必须有一个日志文件吗?我已经阅读了文档,但找不到答案。是的,除非你只运行一个应用程序,而期望另一个应用程序不运行,当一个应用程序正在使用该文件时,另一个应用程序可能不会写入该文件,因此您需要使用线程池来控制访问每个日志的应用程序,或者创建一个单独的日志文件。在这种情况下,我个人将使用数据库 如果您真的想从两个进程
每个应用程序都必须有一个日志文件吗?我已经阅读了文档,但找不到答案。是的,除非你只运行一个应用程序,而期望另一个应用程序不运行,当一个应用程序正在使用该文件时,另一个应用程序可能不会写入该文件,因此您需要使用线程池来控制访问每个日志的应用程序,或者创建一个单独的日志文件。在这种情况下,我个人将使用数据库 如果您真的想从两个进程写入同一个文件,可以使用比默认值更高的值来允许这样做。以下是log4net中的现有模型:
- :仅针对一个进程以独占方式锁定文件
- :在尽可能短的时间内锁定文件,以便在日志记录期间更改/删除文件
- :允许进程之间的同步
谢谢是否存在使用单个日志文件的风险?唯一的问题是,一次只能有一个应用程序可以写。风险在于失去一些日志。我只想补充一点,当你从不同的AppDomain(在同一个过程中)登录时,你会遇到同样的问题。@Christian.K:说得好。我没有考虑不同的应用程序域,因为我没有太多地使用它们。我通常会尝试使用一个转发附加器,它可以缓冲和帮助缓解问题。你有跨域登录的经验吗?缓冲是否有助于锁定机构?