2017-01-23 3 views
1

Ich arbeite derzeit an einem neuen Prism-Projekt in C# und wollte einen NLog Logger in meiner Bootstrapper-Klasse erstellen. Leider, egal was ich mache, weigert es sich zu bauen, sagt mir ...Ich bin nicht in der Lage, einen neuen NLog Logger wegen 'Logger.Logger()' Schutzstufe zu erstellen

'Logger.Logger()' ist aufgrund seiner Schutzstufe nicht zugänglich.

Das Fragment meines Codes in Frage unten aufgeführt wird ...

namespace PrismTemplate 
{ 

    public class Bootstrapper : UnityBootstrapper 
    { 
     #region Method Overrides 

     protected override ILoggerFacade CreateLogger() 
     { 
      //ILoggerFacade logger = new NLogLogger(); 
      ILoggerFacade logger = new Logger(); 
      logger.Log("Prism Template Logger was Created.", Category.Info, Priority.None); 
      return logger; 

      //return new Logger(); 
      //return null; 
     } 

     protected override DependencyObject CreateShell() 
     { 
      return new ShellWindow(); 
     } 

     protected override void InitializeShell() 
     { 
      base.InitializeShell(); 

      ///Assign the shell which is a window to the apps main window, and show it 

      App.Current.MainWindow = (Window)this.Shell; 
      App.Current.MainWindow.Show(); 

     } 

     #endregion Method Overrides 

    } 
} 

ich sowohl Prism und NLog über Nuget in Visual Studio geladen. Jede Hilfe, die dieses Problem anspricht, würde am meisten geschätzt werden.

Danke,

Tesnich

+2

Sie normalerweise nicht Logger direkt instanziiert, können Sie sie von 'LogManager' Zum Beispiel erhalten: 'LogManager.GetCurrentClassLogger()' oder 'LogManager.GetLogger (" Klassenname ")' –

Antwort

4

Aufgrund der starken Konfiguration von Loggern hat NLog gewählt, um die Protokollerstellung Verantwortung für die versiegelte LogManager Klasse zu delegieren.

Sie können entweder eine Instanz zu erhalten:

LogManager.GetCurrentClassLogger()

oder

LogManager.GetLogger(string name)

+2

Zwischenspeichern ist auch der Logmanager, um unnötige Speicher-/CPU-Auslastung zu verhindern. – Julian

+0

@Julian toller Punkt! –

Verwandte Themen