Я работаю над приложением .net core 2.1 и пытаюсь использовать log4net для записи журналов в файлы.Я могу заставить его работать, но не могу понять, как писать в разные среды (например, тестирование / производство), где журналы будут в разных местах.
log4net.config
<log4net>
<root>
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<appender name="console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level - %message%newline" />
</layout>
<threshold value="Info" />
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file value="C:\logs\TestLocation\MyLog.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="100MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level - %message%newline" />
</layout>
<threshold value="Info" />
</appender>
</log4net>
мой метод настройки startup.cs:
loggerFactory.AddLog4Net();
Я ввожу регистратор в мой контроллер:
public MyController(ILogger<MyController> logger)
{
_logger = logger;
}
и использую его в своем контроллере:
_logger.LogInformation("My logger worked!!!!!!!!!!!");
Все это прекрасно работает.Я надеялся, что смогу просто добавить новый файл log4net.config и просто назвать его log4net.Production.config, и приложение будет использовать другой конфигурационный файл в зависимости от среды, в которой он находится, например appnsettings.json.Вместо этого он просто использует мой файл log4net.config по умолчанию.
Можно ли иметь несколько файлов log4net.config для каждой среды, например appsettings.json?