Помимо использования файла конфигурации, Log4net
может принимать свою конфигурацию из других источников, используя, например,.Stream
или XmlElement
.
Для этого вам необходимо использовать Log4net
API через XmlConfigurator.Configure
.
Важно не применять XmlConfiguratorAttribute
;это либо одно, либо другое.
В приведенном ниже примере показано, как применить конфигурацию через XmlElement
.
Содержимое этого XmlElement
можно получить из любого места;жесткий код, встроенный файл ресурсов, запись из базы данных и т. д.
В конфигурации xml
вы объявляете любые регистраторы, которые можно использовать в вашей среде Dynamics 365
.
string xml = @"
<log4net>
<appender name='consoleAppender' type='log4net.Appender.ConsoleAppender' >
<layout type='log4net.Layout.PatternLayout'>
<conversionPattern value='%date | %logger | %level | %message | %exception%n' />
</layout>
</appender>
<root>
<level value='ALL' />
<appender-ref ref='consoleAppender' />
</root>
</log4net>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlElement config = doc.DocumentElement;
ILoggerRepository repository = log4net.LogManager.GetRepository(Assembly.GetCallingAssembly());
XmlConfigurator.Configure(repository, config);
ILog logger = LogManager.GetLogger("somelog");
logger.Debug("foobar");