1

EPiServerのlog4netに問題があります。EPiServerのもの、NHibernateのものをログに記録していますが、カスタムログはログに記録していません。名前空間のすべてをログに記録するようにロガーを明示的に構成しようとしました:

<logger name="My.Website.Business">
    <level value="All" />
</logger>

私は次のようにカスタムクラスでロガーを定義しています:

ILog log = LogManager.GetLogger(typeof(MyClass));

そしてそれをこのように呼んでください:

log.Error("Some error");

また、log4netロギング自体を有効にして、起動時に何が起こるかを確認しましたが、エラーや奇妙な動作はありません。configで定義されたロガーも作成します。ロガーに他のアペンダーを定義しようとしましたが、空のファイルが作成され、何もログに記録されません。

4

2 に答える 2

2

episerverロギングには古くからのバグがあります。global.asaxで静的(クラスレベル)log4netログオブジェクトが宣言されている場合、カスタムロギングは機能せず、episerver内部ロギングのみが機能します。

global.asaxにログを記録する必要がある場合は、メソッド内でロガーを宣言します。他のクラスでは、通常どおり静的に宣言できます。

于 2012-10-05T06:09:09.773 に答える
0

log4netが機能しなかった理由は、log4netのバージョンが異なるためです。私のアプリケーションはlog4net1.2.11(2.0.0)を参照していましたが、EPiServerは1.2.10で動作します。NuGetを使用してパッケージをインストール/更新し、誰かがlog4netを新しいバージョンに更新しました。したがって、EPiServerとアプリケーションに同じlog4netバージョンを使用することに注意してください。

于 2012-12-21T07:44:31.067 に答える