C# Ubuntu上mono中的log4net Udp appender未记录

C# Ubuntu上mono中的log4net Udp appender未记录,c#,linux,ubuntu,mono,log4net,C#,Linux,Ubuntu,Mono,Log4net,在Minnow Max上运行Ubuntu试图在mono应用程序中使用log4net,Udp appender不会登录到远程位置。在Raspberry Pi 2上运行相同的应用程序,并使用相同的配置正确配置Udp追加器日志。当我启用log4net日志记录时,没有错误,并且两台机器上的日志输出是相同的。我使用nmap和Wire Shark验证Udp端口是否打开并发送数据包。Minnow上的文件追加器正在正确记录 C#代码 Log4Net.Config <?xml version="1.0" e

在Minnow Max上运行Ubuntu试图在mono应用程序中使用log4net,Udp appender不会登录到远程位置。在Raspberry Pi 2上运行相同的应用程序,并使用相同的配置正确配置Udp追加器日志。当我启用log4net日志记录时,没有错误,并且两台机器上的日志输出是相同的。我使用nmap和Wire Shark验证Udp端口是否打开并发送数据包。Minnow上的文件追加器正在正确记录

C#代码

Log4Net.Config

<?xml version="1.0" encoding="utf-8"?>
<log4net>
  <appender name="Main" type="log4net.Appender.RollingFileAppender">
    <file value="dcsLog.log" />
    <appendToFile value="true" />
    <maximumFileSize value="1GB" />
    <maxSizeRollBackups value="3" />
    <encoding value="utf-8" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%utcdate{ISO8601} %-8level %-28logger %message%newline" />
    </layout>
</appender>
  <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
    <remoteAddress value="192.168.10.53" />
    <remotePort value="7071" />
    <layout type="log4net.Layout.XmlLayoutSchemaLog4j" />
    <encoding value="utf-8" />
  </appender>
  <root>
    <level value="Debug" />
    <appender-ref ref="Main" />
  </root>
  <logger name="Drake.Mfg.DCS.DEI80021">
    <level value="Debug" />
    <appender-ref ref="UdpAppender" />
  </logger>
</log4net>

单声道

Mono JIT编译器版本4.3.0(master/844fc33周二10月20日14:21:50 EDT 2015)版权所有(C)2002-2014年Novell公司、Xamarin公司和 贡献者。www.mono-project.com TLS:u_螺纹 SIGSEGV:altstack 通知:epoll 架构:amd64 残疾人士:无 杂项:软调试 LLVM:受支持,未启用。 GC:sgen

log4net

1.2.15


Log4Net配置与xml一样区分大小写。Minnow的主机名是小写的,我在找大写的。因为我对主机名没有唯一的控制权,所以我使用了一个更高的权限

ILog logger = LogManager.GetLogger($"Drake.Mfg.DCS.{Environment.MachineName.ToUpper()}");

现在和将来都会修复此问题。

此问题与StackOverflow定义的编程无关。它可能更适合于相关站点或(与服务器或网络相关的专业基础设施管理)。考虑在Q的底部使用标志链接,并要求主持人把它移到那里。请不要在两个不同的网站上发布相同的Q。谢谢,祝你好运。如果你从网络数据包中确认数据已发送,那么这将成为一个非编程问题。您必须检查网络以查看数据包丢失的位置。数据包是通过nmap而不是log4net发送的。没有从log4net发送数据包
ILog logger = LogManager.GetLogger($"Drake.Mfg.DCS.{Environment.MachineName.ToUpper()}");