この 質問 が 何度か寄せられている ことは理解していますが、残念ながら、ログの構成を機能させることができませんでした。私はどこかで非常に小さな間違いを犯しているに違いありません。
.NET 4.5 MVC 4/EF 5 Web アプリケーションがあり、ログを機能させようとしています。ソリューションには 2 つのプロジェクトがあり、1 つは DAO とモデル オブジェクト用、もう 1 つは Web サイト用です。App.Config ファイルは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="RebuildingTogetherEntities" connectionString="stuff..."/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
<log4net configSource="Log.config" />
</configuration>
同じ log4net セクションも Web.Config ファイルにコピーされています。
両方の AssemblyInfo.cs ファイルに次を追加しました。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
「出力ディレクトリにコピー」は、両方の Log.Config ファイルで true に設定されています。
ログを出力ファイルに追加する唯一の方法は、最初のログ ステートメントが実行される前に XmlConfigurator.Configure() を呼び出すことです。ロガーを最初に取得するときに、それを行うためのファサードを作成できると思いますが、それは間違っているように感じます。
XmlConfigurator を手動で呼び出さずにロガーを初期化するにはどうすればよいですか?