6

情報、エラー、log4net を使用したデバッグをログに書き込むことができません。すべてのネットワーク サービスに許可を与えて試してみました。

空のファイルを作成するだけです。ただし、ログは書き込まないでください

何が問題になる可能性がありますか

Thx Raj

4

3 に答える 3

9

私の推測では、構成ファイルでレイアウトパターンを指定していません。通常、アペンダー内には次のようなものがあります。

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>

これは、ログに何を書き込むかを指定します。あなたがそれを持っていないなら、私はそれが何かを書くとは思えません。

私は、ファイルが作成されるので、これはおそらく権限の問題ではないと言ったコメントの人たちに同意します。これが正しいことをテストするために、コンソールに出力するアペンダーを構成に追加できます。次に、アプリケーションをデバッグするときに出力を監視できます。それでも機能しない場合は、問題が権限の問題ではないことがわかります。

私が与えることができる最良の提案は、設定ファイルを実際のファイルと比較することです。すべてのセクションに対応する構成が含まれていること、または対応する必要がない理由がわかっていることを確認してください。これは私がlog4netに書いた記事で、設定のすべてのセクションの説明が含まれており、それらの書き方を示しています。

http://www.codeproject.com/KB/dotnet/Log4net_Tutorial.aspx

これらすべてが役に立たない場合は、質問に設定ファイルのテキストを投稿してください。調査させていただきます。

于 2011-06-21T15:50:05.313 に答える
2

この問題の考えられる原因の 1 つは、ログ レベルです。ログ レベルが FATAL に設定されているかどうかを確認し、その場合は web.config の次の部分を置き換えてみてください。

 <log4net>
         .....
         <root>
              <level value="FATAL" /> 
              <appender-ref ref="RollingFileAppender" />
            </root>
         .....
    </log4net>

これとともに:

<log4net>
    ......
    <root>
         <level value="DEBUG" /> 
           <appender-ref ref="RollingFileAppender" />
       </root>
    ....
</log4net>

さらに、いくつかの最終的な発生を web.config セクションで確認することを忘れないでください。

 <filter type="log4net.Filter.StringMatchFilter">
    <stringToMatch value="test" />
  </filter>

サブセクション。この場合、ロギング レベルが DEBUG に設定されていても (たとえば)、次のようなコードを記述します。

log.Debug("Db quering...");

常に空白を返しますが、たとえば次のように書くと:

log.Debug("test: Db quering...");

したがって、フィルタ セクションとこの行をコメント アウトしてみてください。

  <filter type="log4net.Filter.DenyAllFilter" />

この時点で、最終的には機能するはずです!!

お役に立てれば

于 2014-02-16T18:36:28.137 に答える
0

独自の PatternLayout を使用する場合は、構成ファイルの以前のパターン クラスの名前空間を参照してください。

<layout type="My.PatternClass.Namespace.MyPatternLayout">
    ...
</layout>
于 2018-10-07T19:46:23.480 に答える