конфигурация log4net в проекте .net стандарт 1.3 - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь перенести проект ac # из .net framework v4.6 в стандарт .net.Проект имеет зависимость log4net v2.0.8.

Я нашел это SO anwser , который рекомендует использовать .net стандарт 1.3 и дает ссылку на этот пост , чтобы получить большеподробное решение.

Проблема возникает при настройке log4net с методом XmlConfigurator.Configure, который требует ILoggerRepository в качестве первого аргумента.

В используемом методе post LogManager.GetRepository(Assembly.GetEntryAssembly()), но Assembly.GetEntryAssembly() не поддерживается в стандарте .net 1.3.

Официальная документация также не работает, поскольку XmlConfigurator.Configure подпись метода и его пример использования не совпадают.

Итак, как мне настроить log4net в проекте .net standard 1.3?

1 Ответ

0 голосов
/ 27 ноября 2018

В вашем проекте библиотеки классов .NET Standard 1.3 укажите аргумент Assembly в сигнатуре метода, который заботится о конфигурации Log4net, например:

public static void Configure(Assembly assembly)
{
    ILoggerRepository repository = LogManager.GetRepository(assembly);
    XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));

    // ...
}

Вызовите этот метод из вашегоРеальное приложение, разрабатываемое либо в полной версии .NET Framework, либо в .NET Core, передавая этот аргумент Assembly через, например: Assembly.GetEntryAssembly().

Assembly.GetEntryAssembly(), поддерживается как в полной версии .NET Framework, так и.NET Core.

...