Конфигурация Log4net не работает в рабочих веб-службах Doe Azure
Я использую log4net для входа в мой webapi. протоколирование работает нормально на моем локальном хосте или во время его развертывания на сервере приложений. То же самое не работает в лазурном веб-сервисе. Папка, в которой должен быть создан файл журнала, есть, но там нет файлов.
я добавил раздел ниже в моем файле web.config,
<log4net>
<appender name ="ErrorLog" type ="log4net.Appender.RollingFileAppender">
<file value ="MyLogs\"/>
<staticLogFileName value ="false" />
<appendToFile value ="true"/>
<rollingStyle value ="Date"/>
<datePattern value ="yyyy-MM-dd.'Err'" />
<lockingModel type ="log4net.Appender.FileAppender+MinimalLock"/>
<layout type ="log4net.Layout.PatternLayout">
<conversionPattern value ="%d{DATE} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name ="ErrorLog">
<maximumFileSize value ="15MB" />
<appender-ref ref="ErrorLog"/>
</logger>
</log4net>
1 ответ
Похоже, что есть некоторые ошибки в конфигурации log4net.
Здесь у меня есть полные шаги, которые вы можете выполнить, и они хорошо работают на моем сайте:
1. Установите log4net.dll
бинарный с использованием NuGet.
2. Настройте имя log4net, введите свойства в файле web.config.
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
</configuration>
3. Настройте свойства log4net
<log4net>
<root>
<level value="Debug"/>
<appender-ref ref="LogFileAppender"/>
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\Home\LogFiles\Log4Net\Log4Net.log"/>
<param name="AppendToFile" value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="3MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<logger name="SleepyCore">
<level value="INFO"/>
</logger>
</log4net>
Примечание: Вам нужно указать адрес входа на лазурном как D:\Home
4. Измените метод Global.asax Application_Start() и добавьте в него следующий код.
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));
5. Записать журнал с экземпляром интерфейса ILog
ILog log = LogManager.GetLogger("SleepyCore");
log.Info("Begin - Page_Load() at " + DateTime.Now.ToString("hh.mm.ss.ffffff"));
6. Выход, как показано ниже:
Подробнее о настройке log4net в Azure вы можете прочитать в этой статье.