У меня проблемы с тем, как log4net управляет приложениями и сообщениями этим приложениям.
Когда я записываю 1 сообщение в 1 регистратор (что соответствует 1 приложению), сообщение остается в журнале ALL. файлы (таким образом сообщение, похоже, отправляется ВСЕМ приложениям)
Что я делаю не так?!
Мне удалось воспроизвести мою проблему в модульном тесте:
[Test]
public void Test()
{
var hierarchy = (Hierarchy)LogManager.GetRepository();
var patternLayout = new PatternLayout
{
ConversionPattern = "%date %level %logger - %message%newline" //CreateLayoutPattern(appenderConfiguration.Layout),
};
patternLayout.ActivateOptions();
hierarchy.Configured = true;
for (var i = 1; i < 10; i++)
{
var logFile = Path.Combine(_testLogFolder, $"SomeLog_Test{i}.csv");
var roller = new RollingFileAppender
{
Name = $"Test{i}",
AppendToFile = true,
File = logFile,
CountDirection = 1,
Layout = patternLayout,
ImmediateFlush = true,
// MaxSizeRollBackups is set to max int, software will have an independent mechanism in place (reaper) to clean up old files
MaxSizeRollBackups = int.MaxValue,
MaximumFileSize = "1MB",
RollingStyle = RollingFileAppender.RollingMode.Size,
StaticLogFileName = false,
PreserveLogFileNameExtension = true,
Threshold = Level.All
};
roller.ActivateOptions();
hierarchy.Root.AddAppender(roller);
}
// A
LogManager.GetLogger("Test1").Info("Whatever");
// Now the ALL of the log files contain the message "Whatever", why?!?! I only logged to 'Test1'
}