Log4net-Protokollierung funktioniert nicht mit parallelen Threads

Ich verwende eine grundlegende Parallel.Foreach-Schleife für Zufallszahlen, um die Nummer selbst mit log4net zu protokollieren.

Hier ist mein Code, um 5000 Nachrichten auf parallelen Threads zu protokollieren

            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);
            });

Aber am Ende werden nur 1600 Nachrichten in der Protokolldatei angezeigt.

Ist dies ein bekanntes Problem mit log4net? oder mache ich hier etwas falsch?

Ich habe die folgende Einstellung in der Cofig verwendet, basierend aufAntworteund es ist immer noch das gleiche.

<param name="ImmediateFlush" value="true" />

<log4net debug="false">

    <appender name="GeneralRollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <file   type="log4net.Util.PatternString" value="Logs/All/all_" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd'.log'" />
      <maxSizeRollBackups value="10" />
      <staticLogFileName value="false" />
      <param name="ImmediateFlush" value="true" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="INFO" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %message%newline" />

      </layout>
    </appender>
    <root>
      <appender-ref ref="GeneralRollingFileAppender" />
    </root>
  </log4net>

Log4net Version: 1.2.15.0

Antworten auf die Frage(2)

Ihre Antwort auf die Frage