DNN 7+ サイトにログを実装することを検討しています。log4net で提供されるような構成可能なログ レベルが必要です。
DNN サイトhttp://www.dnnsoftware.com/community-blog/cid/141723/Using-log4net-with-DotNetNukeにある log4net を統合するための指示に従おうとしました。ロギングを使用するための参照とコード行を追加した後:
DnnLog.Info("My Logging Worked!");
コードは、次のような警告を報告しました。
「DotNetNuke.Instrumentation.DnnLog」は廃止されました:「パフォーマンスが低いため 7.0.1 で減価償却されました。LoggerSource.Instance を使用してください」
物事を行う正しい方法に関する情報を見つけるのに苦労しています。「DnnLog」は、「DnnLogger」と呼ばれる log4net とやり取りするための同様のクラスに置き換えられたようです。このクラス (および「LoggerSource」クラス) を使用する場合の違いの 1 つは、静的メソッドを使用してログを記録しないことです。
ロガー インスタンスを取得するために使用される "GetLogger()" 関数は、いくつかのパラメーターを受け取りますが、適切な使用法を説明するドキュメントをまだ見つけることができませんでした。DNN ソースには多くの例があります。これらの例から、適切な使用法は現在のクラスを提供することのように見えます。クラス「MyClass」を宣言するファイル「MyClass.cs」内では、次のように表示されます。
ILog logger = LoggerSource.Instance.GetLogger(typeof(MyClass));
また
DnnLogger logger = DnnLogger.GetLogger("MyClass");
typeof() を使用するコードの最初の行で返されるロガーは? つまり、このロガーはサイト用に構成された log4net 設定を使用するのでしょうか? log4net 設定を使用していない場合、ログ ファイルはどこに保存され、構成設定はどこで調整されますか? 私のオタクは、typeof() クラスパラメーターで何が起こっているのかを正確に知りたいと思っています。なぜそれが使用されているのでしょうか?
最初の例が log4net (または構成可能な使いやすいログ レベルを許可するもの) に接続しない場合、2 番目のオプションが適していますか? もしそうなら、渡すのに適切な文字列は何ですか? 「MyClass」は私の推測でしたが、確認できませんでした。
私がここで完全に軌道から外れていて、別の方向からこれにアプローチする必要がある場合は、お気軽に提案をしてください。
皆さん、どうもありがとう!