2016-02-11 48 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()}"); 

修復它現在和未來。