Log4net日志记录不适用于并行线程
我在随机数上使用基本的Parallel.Foreach循环来使用log4net记录数字本身。
这是我在并行线程上记录5000条消息的代码
Logger logger = new Logger(); var numbers = Enumerable.Range(1, 5000); ParallelOptions parallelOptions = new ParallelOptions() { MaxDegreeOfParallelism = Environment.ProcessorCount }; Parallel.ForEach(numbers, parallelOptions, number => { logger.Write(Level.Info, "main method", "" + number + "", loggingParameters); });
但最终只能在日志文件中看到1600条消息。
这是log4net的已知问题吗? 或者我在这里做错了什么?
我使用了基于Answer的cofig中的以下设置,它仍然是相同的。
Log4net版本:1.2.15.0
您正在写入GlobalContext,我想您需要写入ThreadLogicalContext而不是按照您想要的方式工作。