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而不是按照您想要的方式工作。