Я строго следовал учебнику 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 использовать журнал событий. Я правда не понимаю.
Есть намеки? Спасибо