log4net: udp appender to splunk 只记录第一个字符
log4net: udp appender to splunk only logs first character
我有一个简单的应用程序,它应该将所有日志转发到 splunk 服务器。为此,我将 log4net 与 udp 附加程序一起使用。
问题是只有第一个字符似乎已登录到 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>
在发现发送的 udp 请求在 .net 和 .net core 之间不同后,我假设编码似乎是问题所在。
正在添加
<encoding value="utf-8" />
appender 部分确实解决了问题。
我有一个简单的应用程序,它应该将所有日志转发到 splunk 服务器。为此,我将 log4net 与 udp 附加程序一起使用。
问题是只有第一个字符似乎已登录到 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>
在发现发送的 udp 请求在 .net 和 .net core 之间不同后,我假设编码似乎是问题所在。
正在添加
<encoding value="utf-8" />
appender 部分确实解决了问题。