私は奇妙な問題を抱えています。ソリューションには複数のプロジェクトがあります。そのうちの1つはWebAPIであり、うまくログを記録します。もう1つはMVC管理サイトですが、これはログに記録されません。ここで私が試したことがあります。Log4Netの別の設定ファイルが動作しない
マイログコード:assemblyInfoで
var log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log.Info("Some log message");
私はassemblyInfoの除去(私は次のことを試してみた...のGlobal.asaxのApplication_Startで
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "logging.config", Watch = true)]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "C:\\full_path\\logging.config", Watch = true)]
を次のそれぞれを試してみました行)
log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("Logging.config"));
var log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log.Info("Application starting");
これもログを作成しません。私が作成できる1つの方法は、global.asaxのコードとlogging.configのフルパスを使用することでした。
webapiはassemblyInfoだけで相対パスで動作するので、混乱します。また、AssemblyInfoソリューション(相対パス)を使用してMVCプロジェクトのサンプルダミーソリューションを作成しました。
アイデア?
UPDATE - FOUND ISSUE
私はセットアップにのApplication_Startのconfigファイルウォッチャーを持っていた:
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "logging.config"));
はDotNetOpenAuth.Core.dllはlog4netのを使用していることが判明し、AssemblyInfoソリューションをいない使用して行います作業。私はこのブログで詳細を見つけました:私はセットアップにのApplication_Startのconfigファイルウォッチャーを持っていたhttp://hanskindberg.wordpress.com/2013/04/07/log4net-configuration/
おかげ
権限の問題はありますか(IIS上で実行していて、ファイルへの書き込みに問題がある可能性があります)?あなたは[デバッグ](http://stackoverflow.com/q/677640/724591)それを試しましたか?サンプルのapplication_startコードでフルパスを使用しようとしましたか?あなたの設定はルート要素を持っていますか、 'DeclaryingType'が出力するものと一致していますか? – matth
権限の問題:global.asaxで実行するとフルパスで動作するので、私はそうは思わない。 – BCarlson
デバッグ:VS2012では、ログするときにエラーなしで実行されます。 Log4Netのデバッグでは、何もログに記録できませんでした。同じ設定が動作するか混乱するのは、相対パス/完全パスとグローバルVS assemblyInfoに基づいて動作しないことです。 – BCarlson