Я создал простой сценарий, используя Log4net, но кажется, что мои добавщики не работают, потому что сообщения не добавляются в файл журнала.
Я добавил следующее к файлу web.config:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="D:\MyData\Desktop\LogFile.txt" />
<appendToFile value="true" />
<encoding value="utf-8" />
<layout type="log4net.Layout.SimpleLayout" />
</appender>
<root>
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
В глобальный файл ASAX я добавил:
ILog logger = LogManager.GetLogger(typeof(MvcApplication));
и в методе Application_Start:
logger.Info("Starting the application...");
Что я сделал не так?
Вы звоните
log4net.Config.XmlConfigurator.Configure();
где-нибудь, чтобы log4net прочитал вашу конфигурацию? Например. в Global.asax:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
// Initialize log4net.
log4net.Config.XmlConfigurator.Configure();
}
Убедитесь, что процесс (учетная запись), под которым работает сайт, имеет права на запись в выходной каталог.
В IIS 7 и более поздних версиях это настраивается в пуле приложений и обычно представляет собой Идентификатор AppPool, который обычно не имеет разрешения на запись во все каталоги.
Проверьте свои журналы событий (приложений и безопасности), чтобы узнать, были ли выброшены какие-либо исключения.