2017-03-29 17 views
0

私はASP.Net WebAPIプロジェクト&を持っています。Log4Net APIを使用しています。Log4Netはログファイルを生成しません

protected void LogException(Exception ex) 
    { 
     var msgParams = new Dictionary<string, string> 
       { 
        { "Message", ex.Message }, 
        { "StackTrace", ex.StackTrace }, 
       }; 

     _logger.Info(JsonConvert.SerializeObject(msgParams)); 
    } 

XML設定

<?xml version="1.0" encoding="utf-8" ?> <log4net> 
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 

    <file value="App.log" /> 

    <appendToFile value="true" /> 

    <maximumFileSize value="50KB" /> 
    <maxSizeRollBackups value="2" /> 

    <encoding value="utf-8" /> 

    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level %thread %logger - %message%newline" /> 
    </layout> 

</appender> 

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingFile" /> 
</root> 

しかし、どのような例外がたlogException(上記&を発生する)ヒット取得し、私はすべての例外を取得していない午前も私はいかなるApp.Logファイルを参照してくださいどちらも私のディレクトリに。

ここには何がありますか? ヘルプ/提案は高く評価されています。

+2

debugbiewのようなランタイムトレースツールを使用すると、apppoolアカウントにファイルを作成する権限がないことがあります。ログは、アプリケーションルート外の別の場所に設定する必要があります。 –

+0

@tomredfern、私は管理者として実行しています –

+0

XmlConfiguratorまたはアセンブリ属性を使用して実行時にlog4netを設定していることを確認するだけですか? – stuartd

答えて

0

問題は、おそらく場所にあります。

<file value="App.log" /> 

これは、あなたのウェブサーバのディレクトリへの相対記録します、あなたのコード/実行ファイルのない場所。これをテストするための完全なパスを設定すると、アプリケーションを実行するユーザーのログの場所を書き込み可能にする必要があります。

+0

を確認しました。何もそのような –

+0

要求を実行するIISプロセスのために書き込み可能である必要があります。 – Steve

関連する問題