10

Web リクエスト、機能のアクティブ化、およびすべてのタイマーのために、log4net を SharePoint に統合するためのベスト プラクティスを探しています。

ファームに複数のサブプロジェクトがあり、Log4Net.config ファイルを 1 つだけにしたいと考えています。

[編集]
Web アプリケーション用に log4net を構成する必要があるだけでなく、これは簡単に行うことができます (global.asax と log4net.config ファイルを使用するため、Web アプリケーションをリロードせずにログ設定を変更できます)。非同期イベントをログに記録するには:

  • イベント ハンドラー (ItemAdded など)
  • タイマージョブ
  • ...
4

4 に答える 4

9

私は最近これを実装し、私にとってうまくいく解決策を思いつきました。

グローバル スコープのソリューションを使用して、log4net 構成ファイルを 12 ハイブに展開し、log4net dll を GAC に展開します。次に、アプリケーション コードで、グローバル ファイルの場所から log4net を明示的に初期化します。これにより、機能レシーバー、タイマー ジョブ、および Web アプリケーション コードをログに記録できます。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = 
    @"C:\Program Files\Common Files\Microsoft Shared\" + 
    @"Web Server Extensions\12\CONFIG\log4net.config", Watch = true)]

ここを参照してください http://www.codeproject.com/KB/sharepoint/SharepointLog4Net.aspx

于 2009-11-19T23:08:35.087 に答える
1

まず、SharePoint 仮想ディレクトリが存在する web.config を変更する必要があります。これは、log4net アセンブリを信頼するために SafeControl エントリを追加する必要があるためです。フィーチャー レシーバーで SPWebConfigModification クラスを使用して、プログラムで web.config を更新できます。とにかくweb.configを変更する必要があるため、log4net構成を内部に含め、外部log4net構成をセットアップしないことを検討することをお勧めします。

ただし、それでもこれを行いたい場合は、web.config ファイルに次を追加するとうまくいく場合があります。

<configuration ...>
  ...
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net configSource="log4Net.config">
  ...
</configuration>

これで、log4net.config ファイルが web.config と共存できるようになります。Nat が言うように、このファイルをソリューション パッケージとして展開できます。

最小限の信頼を実行しようとしていると仮定すると、コード アクセス セキュリティ ファイルを更新して、log4net アセンブリも含める必要があります。すべてのカスタム SharePoint コードは、log4net 構成を自動的に使用する必要があります。

于 2008-10-21T16:59:57.310 に答える
0

log4net機能を開発し、それをwspファイルにパッケージ化しました。機能レシーバーはhttpmoduleをweb.configに追加し、httpモジュールでアプリケーション開始イベントが発生すると、httpmoduleはレイアウトディレクトリからlog4net.configをロードします。

于 2010-02-08T18:03:54.397 に答える
0

構成ファイルをソリューション パッケージの一部として 12 ハイブにリリースできます ( STSDevを使用してパッケージを作成します)。これにより、構成の設定場所が提供され、それに対する変更は制御された方法でリリースできます (つまり、手動で編集する必要はなく、ロールバックしてソリューションを再インストールするだけです)。

于 2008-10-20T20:06:46.513 に答える