Настройка Log4Net в веб-приложении
у меня есть этот код, и файл config ниже:
ILog log = LogManager.GetLogger(typeof(MyClass));
log.Debug("Testing");
TestProj
каталог не создается и если я его создам, то нет , без регистрации ... ничего.
есть идеи?
спасибо,
файл config
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:TestProjTestLog.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
5 ответов:
другой способ сделать это - добавить эту строку в информацию о сборке веб-приложения:
// Configure log4net using the .config file [assembly: log4net.Config.XmlConfigurator(Watch = true)]
похоже на крик.
1: добавьте следующую строку в класс AssemblyInfo
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
2: Убедитесь, что вы не используете
.Net Framework 4 Client Profile
какTarget Framework
(Я думаю, что это нормально на вашей стороне, потому что в противном случае он даже не будет компилироваться)3: убедитесь, что вы войти в самом начале программы. В противном случае, в некоторых сценариях, он не будет инициализирован должным образом (подробнее на часто задаваемые вопросы, такой как log4net).
так, в журнале что-то во время запуска приложения в Глобальный.асакс
public class Global : System.Web.HttpApplication { private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof(Global)); protected void Application_Start(object sender, EventArgs e) { Log.Info("Startup application."); } }
4: Убедитесь, что у вас есть разрешение на создание файлов и папок по указанному пути (если папки не существует)
5: остальная часть вашей информации выглядит нормально
часто это происходит из-за отсутствия разрешений. Учетная запись windows, с которой работает локальный пул приложений IIS, может не иметь разрешения на запись в каталог приложений. Вы можете создать каталог где-нибудь, дать всем разрешение на запись в него и указать свою конфигурацию log4net в этот каталог. Если затем там создается файл журнала, вы можете изменить разрешения для нужного каталога журнала, чтобы пул приложений мог записывать в него.
еще одна причина может быть неинициализированные такой как log4net. В приложении winforms обычно настраивается log4net при запуске приложения. В веб-приложении вы можете сделать это либо динамически (в своем компоненте ведения журнала проверьте, можно ли создать определенный регистратор Ilog, используя его имя, если нет -> call configure ()), либо снова при запуске приложения в глобальном режиме.асакс.цезий.
У меня также была аналогичная проблема. Журналы не создавались.
пожалуйста, проверьте имя атрибута logger должно совпадать с вашим LogManager.GetLogger("имя")
<logger name="Mylog"> <level value="All"></level> <appender-ref ref="RollingLogFileAppender" /> </logger> private static readonly ILog Log = LogManager.GetLogger("Mylog");