2017-01-23 8 views
1

現在、C#で新しいPrismプロジェクトを作成中で、BootstrapperクラスにNLog Loggerを作成したいと考えています。残念ながら、私が何をしても、ビルドを拒否して、私に伝えます...Logger.Logger()の保護レベルのために新しいNLog Loggerを作成できません

'Logger.Logger()'は保護レベルのためアクセスできません。問題の私のコードの断片は以下の通りである

...

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 

    } 
} 

私は、Visual StudioでNuget経由プリズムとNLogの両方をダウンロードしました。この問題を攻撃する助けがあれば、大歓迎です。ロガーの重い構成に

おかげで、

Tesnich

+2

あなたが正常に直接ロガーをインスタンス化していない、あなたは、例えば、 'LogManager'からそれらを取得します: 'LogManager.GetCurrentClassLogger()'または 'LogManager.GetLogger(" classname ")' –

答えて

4

は、NLogは密封されてLogManagerクラスにログ作成の責任を委譲することを選択しました。あなたは、インスタンスを取得するためにいずれかを使用することができます

LogManager.GetCurrentClassLogger()

または

LogManager.GetLogger(string name)

+2

不要なメモリ/ CPU使用を防ぐために、logmanagerもキャッシュされます。 – Julian

+0

@ジュリアンの素晴らしい点! –

関連する問題