7

NLogを介してアプリにログインを実装しています。これは私のNlog.Configです:

 <?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ファイルが作成されません。エラーは発生せず、アプリは通常どおり実行されますが、何も起こりません。

この問題を解決する方法は?

4

1 に答える 1

18

ClickOnce インストーラーは、ソフトウェアのインストール時に NLog.config ファイルを展開しないため、アプリにはログ構成がありません。

解決:

  1. ロギング構成を app.config ファイルにマージできます。
  2. Nlog.config には以下が必要です:ビルド アクション:コンテンツと出力ディレクトリへのコピー:常にコピー。
于 2012-12-20T16:14:01.753 に答える