2016-02-11 90 views
0

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

C#代码

private static readonly ILog Logger = LogManager.GetLogger($"Drake.Mfg.DCS.{Environment.MachineName}"); 
public static LogLevel ConsoleLevel { get; set; } 

public static void LogToNet(string message, LogLevel logLevel) 
{ 
    try 
    { 
     switch (logLevel) 
     { 
      case LogLevel.None: 
       break; 
      case LogLevel.Trace: 
       Logger.Trace(message); 
       break; 
      case LogLevel.Debug: 
       Logger.Debug(message); 
       break; 
      case LogLevel.Info: 
       Logger.Info(message); 
       break; 
      case LogLevel.Warn: 
       Logger.Warn(message); 
       break; 
      case LogLevel.Error: 
       Logger.Error(message); 
       break; 
      case LogLevel.Fatal: 
       Logger.Fatal(message); 
       break; 
      case LogLevel.AlwaysLog: 
       Logger.Info(message); 
       break; 
      default: 
       throw new ArgumentOutOfRangeException(nameof(consoleLevel), consoleLevel, null); 
     } 
     Console.WriteLine($"{message}"); 
     Console.ResetColor(); 
    } 

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> 

单声道

单声道JIT编译版本4.3.0(主/ 844fc33星期二年10月20十四时21分50秒 EDT 2015)版权所有(C)2002-2014 Novell,Inc,Xamarin Inc和 贡献者。 www.mono-project.com TLS:__thread SIGSEGV:altstack 声明:epoll的 硬件架构: 禁用:无 其他:softdebug LLVM:支持,尚未启用。 GC:SGEN

log4net的

1.2.15

+0

这个Q不是关于为StackOverflow定义的编程。在相关网站http://askubuntu.com或http://ServerFault.com(专业服务器或网络相关基础设施管理)上可能更合适。考虑使用Q底部的标志链接并请主持人将其移动到那里。请不要在2个不同的网站上发布相同的Q.谢谢你,祝你好运。 – shellter

+0

如果您通过网络数据包确认数据已发送,则它将成为非编程问题。您将不得不检查网络以查看数据包丢失的位置。 –

+0

数据包通过nmap而不是log4net发送。没有数据包从log4net发送 – SjacksonAtDdrake

回答

0

log4net的配置是作为XML是大小写敏感的。 Minnow的主机名是小写字母,我正在寻找上层。因为我没有对主机名的唯一控制,所以我使用了To Upper。

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

修复它现在和未来。