Log4Net не может анализировать конфигурацию XML

Я разрабатываю простое приложение .NET и пытаюсь использовать log4Net для регистрации некоторой полезной информации. С базовой конфигурацией у меня проблем нет. Когда я пытаюсь использовать конфигурацию xml, у меня возникает следующая проблема:

log4net: ОШИБКА Ошибка при загрузке конфигурации XML System.Xml.XmlException: данные на корневом уровне недействительны. Строка 1, позиция 1. в System.Xml.XmlTextReaderImpl.Throw (исключение e) в System.Xml.XmlTextReaderImpl.Throw (String res, String arg) в System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace () в System.Xml.XmlText. ParseDocumentContent () в System.Xml.XmlTextReaderImpl.Read () в System.Xml.XmlLoader.Load (XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) в System.Xml.XmlDocument.Load (XmlReaderConfig.ReaderConfig.XmlDocument.Load (XmlReaderConfig). InternalConfigure (репозиторий ILoggerRepository, Stream configStream)

Фрагмент кода следующий:

var xmlConfig = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location+path.DirectorySeparatorChar+"logConfig.xml");
if (xmlConfig != null) XmlConfigurator.Configure(new FileInfo(xmlConfig));
else BasicConfigurator.Configure();

Файл xml взят непосредственно из документации log4net и выглядит следующим образом

<log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
        </layout>
    </appender>
    <root>
        <level value="INFO" />
        <appender-ref ref="ConsoleAppender" />
    </root>
</log4net>

как я могу решить эту ошибку, я думаю, что xml правильный, если в документации нет ошибки.


person Razlo3p    schedule 05.10.2015    source источник
comment
Проверьте свой XML на наличие непечатаемых символов, stackoverflow.com/questions/291455/   -  person CodeCaster    schedule 05.10.2015
comment
Я только что разобрался сам. Неправильный парентес при получении имени каталога, я отправлю автоответ как можно скорее!   -  person Razlo3p    schedule 05.10.2015


Ответы (1)


Решено, я просто неправильно набрала парентез. Я отвечу на это для сообщества

var xmlConfig = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar + "logConfig.xml";

person Razlo3p    schedule 05.10.2015
comment
Возможно, вы захотите взглянуть на _ 1_ тоже. Только с 1 Path.DirectorySeparatorChar это не будет иметь слишком большой разницы, но как только вы начнете объединять несколько компонентов пути, это имеет значение. Он также заботится о том, имеет ли каждый компонент / в начале / конце или нет и т. Д. - person James Thorpe; 05.10.2015