2016-03-03 50 views
5

任何線索如何正確使用Topshelf.Logging如何正確使用Topshelf.Logging

我是否已將NLogLogWriter傳遞給服務類的構造函數?

如何啓用輸出到控制檯?

class Program 
    { 
     #region Properties 
     Topshelf.Logging.NLogLogWriter logger; 
     static string mainLoggerName = "MainLogger"; 
     #endregion 

     static void Main(string[] args) 
     { 
      var nlogLogger = LogManager.GetCurrentClassLogger(); 
      Topshelf.Logging.NLogLogWriter logger = new Topshelf.Logging.NLogLogWriter(nlogLogger, mainLoggerName); 


      HostFactory.Run(x =>         
      { 
       x.Service<ExSPCAgentService>(s =>       
       { 
        s.ConstructUsing(name => new MyAgentService());  

        // s.WhenStarted(tc => tc.Start());    
        s.WhenStarted(tc => 
        { 
         // Add more config options if you need 
         tc.Start(); 
        }); 
        s.WhenStopped(tc => tc.Stop());     
       }); 
       x.RunAsLocalSystem();        
       x.UseNLog(); 
       x.SetDescription("MyAgentService");   
       x.SetDisplayName("MyAgentService");       
       x.SetServiceName("MyAgentService");       

      }); 
     } 
    } 

回答

2

要指定記錄器,使用overload of UseNLog,讓你指定一個LogFactory

對於登錄到控制檯,您將啓用console target

+1

謝謝!關於控制檯目標的第二部分很有用。請介意提供有關LogFactory的示例。 –