.net core log4net:udp追加器到splunk只记录第一个字符

.net core log4net:udp追加器到splunk只记录第一个字符,.net-core,log4net,splunk,.net Core,Log4net,Splunk,我有一个简单的应用程序,它应该将所有日志转发到splunk服务器。为此,我将log4net与udp appender一起使用 问题在于只有第一个字符似乎登录到splunk: 图片: 我用wireshark追踪了这个请求: ¬)yElb! J ÿ-X,Ñ[date=2019-05-27 15:00:27,489] [level=INFO ] [environment=xxx] [hostname=xxx] [type=web] [logger=SplunkLogger] [message=Wor

我有一个简单的应用程序,它应该将所有日志转发到splunk服务器。为此,我将log4net与udp appender一起使用

问题在于只有第一个字符似乎登录到splunk:

图片:

我用wireshark追踪了这个请求:

¬)yElb!
J
ÿ-X,Ñ[date=2019-05-27 15:00:27,489] [level=INFO ] [environment=xxx] [hostname=xxx] [type=web] [logger=SplunkLogger] [message=Working on 634726506325099884]
我们使用的另一个工具也使用log4net,这个工具可以正常工作。遗憾的是,我无法找到源头。因此,我认为splunk服务器配置正确

log4net.conf

<?xml version="1.0" encoding="utf-8"?>
<log4net>

  <root>
    <level value="INFO" />
    <appender-ref ref="SplunkAppender" />
    <appender-ref ref="FileAppender" />
  </root>

  <logger name="SecurityLogging">
    <level value="ERROR" />
  </logger>



    <appender name="SplunkAppender" type="log4net.Appender.UdpAppender">
      <threshold value="INFO" />
      <remoteAddress value="xxxx" />
      <remotePort value="xxxx" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[date=%date] [level=%-5level] [environment=xxxx] [hostname=%property{log4net:HostName}] [type=web] [logger=%logger] [message=%message]" />
      </layout>
    </appender>

    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="log-file.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[date=%date] [level=%-5level] [environment=xxxx] [hostname=%property{log4net:HostName}] [type=web] [logger=%logger] [message=%message]" />
      </layout>
    </appender>

</log4net>

在发现.net和.net core之间发送的udp请求不同后,我认为可能是编码问题

添加

<encoding value="utf-8" />


添加到appender部分确实解决了问题。

它似乎与.NET内核有关。在这里,您可以看到请求是不同的:(右、经典.net和左.net核心)