Я в настоящее время создаю Приложение ASP.Net-MVC с помощью log4net для входа, но регистратор, кажется, просто останавливается наугад. Это счастливо зарегистрируется некоторое время, и затем остановится и затем запустится снова после промежутка времени. Я даже не уверен, что это, это заставляет его продолжить регистрироваться. Я не говорю о всего нескольких потерянных сообщениях - иногда это исчезает в течение длительного промежутка времени, такого как час или около этого.
Почему это остановилось бы и запустилось бы как это? Как я должен правильно настроить это так, чтобы это случайным образом не останавливалось, как это делает?
Вот моя конфигурация:
<log4net debug="true">
<appender name="RollingLogFileAppender"
type="log4net.Appender.RollingFileAppender">
<file value="..\Logs\\CurrentLog.txt" />
<appendToFile value="true" />
<datePattern value="yyyyMMdd" />
<rollingStyle value="Date" />
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern
value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
</root>
Log4Net будет молча вывести из строя, если что-то пойдет не так, и он не сможет писать в свои приложения. На самом деле это хорошо, поскольку это означает, что небольшое количество неудачных попыток ведения журнала не приведет к выходу из строя в остальном работоспособной системы, но может раздражать, если что-то не регистрируется так, как вы ожидаете.
Лучше всего включить собственное внутреннее ведение журнала log4net, чтобы выполнить некоторую диагностику и (надеюсь) выяснить причину сбоя.
Итак, в файле конфигурации вашего приложения добавьте:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
</configuration>
, который включит внутреннее ведение журнала, которое будет отправлено в System.Diagnostics.Trace
, поэтому вы можете добавить:
<configuration>
...
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\tmp\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
...
</configuration>
, чтобы записать это в файл.