Я использую Log4Net для нескольких программ, которые я пишу, всего того, что является надстройками к «родительскому» программному обеспечению. Это ведение журнала, однако файлы журнала перемешиваются ... Я хотел бы иметь приложение для файлов, которое регистрирует файлы, уникальные для каждого приложения и сеанса. Прямо сейчас делаю что-то вроде этого:
foreach (ILog log in LogManager.GetCurrentLoggers())
{
var logger = (Logger)log.Logger;
logger.Level = wFSettings.CommonSettings.LogLevel;
logger.RemoveAllAppenders();
var ap = new FileAppender()
{
Name = "fileWF",
File = _logPath,
AppendToFile = true,
ImmediateFlush = true,
LockingModel = new FileAppender.MinimalLock(),
Threshold = Level.All,
};
var lp = new PatternLayout() { ConversionPattern = "%date [%thread] %level %logger - %message%newline" };
lp.ActivateOptions();
ap.Layout = lp;
ap.ActivateOptions();
logger.AddAppender(ap);
logger.Repository.Configured = true;
}
Это выполняется после считывания настроек программы (в основном это первое, что она делает), чтобы уровень журнала и путь к файлу соответствовали настройкам приложения. Однако, как вы можете видеть, он просто удаляет все дополнения и добавляет к каждой вещи свои собственные. Я думаю, поэтому он смешивает журналы; в основном побеждает последний.
В любом случае, я искал вокруг, и мне интересно, нужно ли мне как-то настраивать репозиторий? Я не мог найти ничего, что указывало бы на то, как это сделать.
Приветствуются любые указатели.