Log4Net не работает в веб-приложении MVC, но работает в консольном и оконном приложении - PullRequest
0 голосов
/ 01 октября 2019

Я создал решение, которое состоит из библиотеки классов , веб-приложения MVC и консольного приложения .

Для моего проекта библиотеки классовфактически отвечает за ведение журнала, используя log4net , который также включен в конфигурацию log4net в log4net.config . В настоящее время я сталкиваюсь с проблемой, из-за которой регистрация не работает, когда мое веб-приложение вызывает функцию регистрации из библиотеки классов. Но это нормально работает, когда мое консольное приложение. Мой log4net.config выглядит следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\\Temp\" />
      <datePattern value="'Test.log_'yyyy-MM-dd'.log'" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <appendToFile value="true" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout, log4net">
        <conversionPattern value="%date [%thread] %-5level %logger [%method] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
</configuration>

Я также включил строку ниже в мою библиотеку классов [AssemblyInfo.cs]

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

Моя примерная библиотека библиотеки функций, как показано ниже:

private static readonly log4net.ILog log = 
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public void Write ()
{
    log.Info("Success");
}

Я установил log4net.config Копировать в каталог вывода в Копировать всегда .

Пример вывода log4net из консольного приложения [ Test.log_yyyy-MM-dd.log ]:

2019-10-01 12:07:48,923 [1] INFO  ClassLibrary2.Class1 [Write] - Success

Но есть файл журналасоздан для веб-приложения MVC. Есть ли какие-либо дополнительные шаги, которые необходимо настроить для веб-приложения?

Буду признателен за любую помощь с ним.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Вы что-то добавили в свой метод Application_Start? (global.asax) как:

string l4net = Server.MapPath("~/log4net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));
0 голосов
/ 01 октября 2019

Попробуйте добавить ConfigSections в ваш web.config. Также есть руководство, специально для приложений MVC.

</p>

<code><configSections> 
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
</configSections> 
</code>

Полное руководство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...