Log4net configuration from assembly attribute does not load configuration file

Случай, когда нотация [] полезна:

Если ваш объект является динамическим и в ключах могут быть какие-то случайные значения, такие как number и [], или любой другой специальный символ, например -

var a = { 1 : 3 };

Теперь, если вы попытаетесь получить доступ, например, a.1, это произойдет из-за ошибки, потому что она ожидает строку там.

27
задан Philipp M 13 November 2013 в 09:51
поделиться

3 ответа

У меня также есть проблемы с этим методом загрузки log4net. Документация говорит, что вы должны сделать вызов очень рано при запуске приложения

, если вы используете атрибуты конфигурации, вы должны вызвать log4net, чтобы позволить ему читать атрибуты. Простой вызов LogManager.GetLogger вызовет чтение и обработку атрибутов в вызывающей сборке. Поэтому крайне важно сделать запись в журнале как можно раньше во время запуска приложения и, безусловно, до того, как какие-либо внешние сборки были загружены и вызваны.

Попробуйте поместить регистратор в тот же класс, который запускает ваше приложение (program.cs, app.xaml, что угодно). Например,

,
private static readonly ILog Log = LogManager.GetLogger(typeof(Program));
,

. И для ударов, сделайте любой вызов в журнал (даже тот, который отфильтрован или оценен из процесса добавления, он должен заставить log4net оценить ваш репозиторий / иерархию).

static Program()
{
    Log.Debug("Application loaded.");
}
37
ответ дан 28 November 2019 в 05:10
поделиться

Я храню log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config"))); в Global.asax.cs внутри Application_Start () ... Так что мне не нужно носить команду повсюду.

4
ответ дан 28 November 2019 в 05:10
поделиться

Я использую разделы Web.Config, чтобы настроить Logger и вручную регистрировать события, загрузчик Logger из global.asax

static ILog logger = LogManager.GetLogger(<LoggerName>);

protected void Application_Start()
{
   log4net.Config.XmlConfigurator.Configure(); 
}

Попробуйте загрузить его из global.asax

0
ответ дан 28 November 2019 в 05:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: