2015-10-05 62 views
0

我正在开发一个简单的.NET应用程序,我tryng使用log4net的登录一些有用的信息。 基本配置我没有问题。 当我尝试使用xml配置时,出现以下问题:log4net的无法解析的XML配置

log4net:错误加载XML配置时出错System.Xml.XmlException:根级别的数据无效。 1号线,在System.Xml.XmlTextReaderImpl.Throw(例外五)在System.Xml.XmlTextReaderImpl.Throw(字符串RES,字符串ARG)在System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()在System.Xml.XmlTextReaderImpl位置1。 ParseDocumentContent()在System.Xml.XmlTextReaderImpl.Read()在System.Xml.XmlLoader.Load(XmlDocument的文档,读取器的XmlReader,布尔preserveWhitespace)在System.Xml.XmlDocument.Load(的XmlReader读取器)在log4net.Config.XmlConfigurator。 InternalConfigure(ILoggerRepository库,流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是正确的假设有在文档中没有错误。

+2

检查XML的非打印字符,http://stackoverflow.com/questions/291455/xml-data-at-root-level-is-invalid – CodeCaster

+0

我只是想出我自己。获取目录名称时出现错误的parentesis,我将发布一个autoanswer Asap! – Razlo3p

回答

0

解决,我刚才输入错了一个parentesis。我会回答这个社区

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

+3

你可能想看看['Path.Combine'(https://msdn.microsoft.com/en-us/library/system.io.path.combine(V = vs.110)的.aspx)也。由于只有1'Path.DirectorySeparatorChar'它不会使_too_太大的差别,但只要你开始有几个路径组件来连接它的确与众不同。它还会考虑每个组件在开始/结束时是否有'/'等。 –