Думаю, я перепробовал все возможные комбинации вызовов, чтобы log4net работал с ASP.NET Core 2.1, но пока не повезло.Я выполнил шаги, описанные в Как использовать log4net в ядре Asp.net 2.0 .Я также исследовал все варианты, описанные в ASP.NET Core 2.1 + Log4Net .
Пока не повезло.Log4net.config копируется в двоичную папку.Он используется (я заметил, что он заблокирован, когда служба работает).Я использовал абсолютные и относительные пути.Вызывается и не вызывается loggerFactory.AddLog4Net ("log4net.config");Я вызвал оба:
var log4netConfig = new System.Xml.XmlDocument();
log4netConfig.Load(File.OpenRead(@"log4net.config"));
var repo = LogManager.CreateRepository(Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));
XmlConfigurator.Configure(repo, log4netConfig["log4net"]);
и
ILoggerRepository repository = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
ILog создается следующим образом:
private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
Но также я использовал этот подход:
var log2 = LogManager.GetLogger(typeof(Startup));
log2.Info("SOME");
Каждый раз, когда в журнале не создаются созданные Appenders (список пуст), даже если вызывается метод Configure.
Конечно, файл не создается.Я заметил, что некоторые люди сообщили, что его можно добавить в ваш проект Core 2.1, но я еще не обнаружил правильную комбинацию вызовов и действий.
Есть ли способ отследить, что на самом деле делает log4net, чтобы решить проблему?До сих пор в моем долгом опыте log4net был самым сложным компонентом для работы.Или точная комбинация шагов?Я использую log4net 2.0.8 nuget.