Журнал 4net необъяснимый cra sh из-за EventLogAppender - PullRequest
0 голосов
/ 17 февраля 2020

Я строго следовал учебнику log 4net basi c . Поэтому я просто скопировал и вставил код в файл журнала 4net .config.

<log4net>
  <root>
    <level value="ALL" />
    <appender-ref ref="console" />
    <appender-ref ref="file" />
  </root>
  <appender name="console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%level] %message%newline" />
    </layout>
  </appender>
  <appender name="file" type="log4net.Appender.RollingFileAppender">
    <file value="myprogram.log" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%level] %message%newline" />
    </layout>
  </appender>
</log4net>

Затем я добавил строку

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]

в файл AssemblyInfo.cs, как было предложено по учебнику. Вот и все.

В моей программе я несколько раз вызываю log.Info ("message"). После успешного вызова N (я вижу журналы на консоли и в файле журнала) журнал 4net прекращает ведение журнала.

Затем я добавил эти строки в свой файл app.config

<appSettings>
    <add key="log4net.Internal.Debug" value="true"/>
</appSettings>

<system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add
            name="textWriterTraceListener"
            type="System.Diagnostics.TextWriterTraceListener"
            initializeData="C:\Temp\log4net.txt" />
      </listeners>
    </trace>
</system.diagnostics>

для включения внутренней регистрации. Чтение журнала 4net, внутренний журнал, я получаю эту проблему

Logger [EventLogLogger] Level string is [INFO].
log4net: Logger [EventLogLogger] level set to [name="INFO",value=40000].
log4net: Hierarchy Threshold []
No appenders could be found for logger [myProgram.Program] repository [log4net-default-repository]

Похоже, каким-то образом, журнал 4net ищет EventLogLogger. Но нигде я не велел журналу 4net использовать журнал событий. Я правда не понимаю.

Есть намеки? Спасибо

...