2016-03-03 30 views
5

Qualsiasi indizio su come utilizzare correttamente Topshelf.Logging?Come utilizzare Topshelf. Registrazione corretta

Devo passare NLogLogWriter al costruttore della classe di servizio?

E come abilitare l'output anche su console?

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");       

      }); 
     } 
    } 

risposta

2

Per specificare il vostro registratore, utilizzare il overload of UseNLog che consente di specificare un LogFactory.

Per accedere alla console è necessario abilitare uno console target.

+1

Grazie! La seconda parte sull'obiettivo della console era utile. Ti dispiacerebbe fornire un esempio su LogFactory, per favore. –