2012-12-20 17 views
5

私はNLog経由でアプリケーションにロギングを実装しています。これは私のNlog.Configです:NLogはClickOnceでロギングしません

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <targets async="true"> 
    <target xsi:type="File" 
      name="ExceptionTarget" 
      fileName="LOG.txt" 
      layout="${date:format=dd MMM yyyy HH-mm-ss} ${uppercase:${level}} ${newline}${message} ${exception::maxInnerExceptionLevel=5:format=ToString}${newline}${stacktrace}${newline}"/> 
    </targets> 

    <targets async="true"> 
    <target xsi:type="File" 
      name="InfoTarget" 
      fileName="LOG.txt" 
      layout="${date:format=mm-ss} ${uppercase:${level}} ${newline}${message} ${newline}"/> 
    </targets> 

    <rules> 
    <logger name="*" level="Error" writeTo="ExceptionTarget"/> 
    <logger name="*" level="Info" writeTo="InfoTarget"/> 
    </rules> 
</nlog> 

ClickOnceでアプリケーションを展開すると、log.txtファイルが作成されません。エラーは発生せず、私のアプリケーションは正常に動作しますが、何も起こっていません。

この問題を解決するにはどうすればよいですか?

答えて

10

ソフトウェアのインストール時にClickOnceインストーラがNLog.configファイルを展開していないため、アプリケーションにログ設定が行われません。

ソリューション:

  1. あなたのapp.configファイルにログ記録の設定をマージすることができます。
  2. Nlog.configには、次のものが必要です。ビルドアクション:内容と出力ディレクトリにコピー:常にコピーします。