小编Son*_*yen的帖子

为什么log4net日志消息具有一些未知字符?

我使用log4net记录日志。并在此处使用配置(仅记录消息):

    <logger name="LogTracking">
      <level value="INFO" />
      <appender-ref ref="LogTrackingAppender" />
    </logger>
    <appender name="LogTrackingAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logging\urltracking\" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <maxSizeRollBackups value="-1" />
      <maximumFileSize value="20MB" />
      <encoding value="utf-8" />
      <datePattern value="yyyy'\\'MM'\\'dd'\\'yyyyMMddHH'.log'" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message%newline" />
      </layout>
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    </appender>
Run Code Online (Sandbox Code Playgroud)

但是,当我打开日志文件时,如果以UTF-8编码,则行消息看起来很正常。并且如果采用ANSI编码,则这些行消息在行的开头具有未知字符。看这里:

<?xml version="1.0" encoding="utf-8"?><UrlTrackingObj><Url>mysite</Url><Action>view</Action><Ip>::1</Ip><Os>Windows 8.1</Os><Browser>Chrome 59.0</Browser></UrlTrackingObj>
Run Code Online (Sandbox Code Playgroud)

然后,当我的应用程序读取日志行时,它可以读取并处理此字符。我的配置有什么问题?或解决此问题的任何解决方案?我只需要日志行:

<?xml version="1.0" encoding="utf-8"?><UrlTrackingObj><Url>mysite</Url><Action>view</Action><Ip>::1</Ip><Os>Windows 8.1</Os><Browser>Chrome 59.0</Browser></UrlTrackingObj>
Run Code Online (Sandbox Code Playgroud)

log4net

2
推荐指数
1
解决办法
753
查看次数

标签 统计

log4net ×1