2016-12-21 8 views
0

私は毎日のログを行うためにlog4netを使用しています。
私はlog4netがこのような古いファイルの削除をサポートしていないことを認識します。web.configからlog4Netを読み込む方法

私はこのタスクを達成するために私自身の方法を書こうとしていますが、web.configファイルからlog4net設定を読み込む方法はわかりません。私が試した

var log4NetData = ConfigurationManager.GetSection("log4net"); 

は、しかし、私は私の結果としてこれを取得する:

型 'System.Configuration.ConfigXmlElement' 両方 'System.Configuration.dll' に存在し、 'System.dll'

web.configからlog4netノードを読み取るにはどうすればよいですか?

+0

それはあなたがそれを使用したい 'ConfigXmlElement'知らないあなたに言っコンパイラです。指定されたDLLのそれぞれに1つずつ2つあるようです。 varをより具体的に変更します。 – AlG

+0

ConfigurationManager.GetSection()は、typeオブジェクトを返します。それは例外を投げる別の行ですか? –

+0

どのような設定が必要ですか?あなたはおそらくconfigを読むことなくlog4netから直接それらを得ることができます。 – stuartd

答えて

0

実際、Log4Netは同じファイルを常に更新できます(この方法では、削除して別のファイルを作成する必要はありません)。 私はlog4Netを使って、常に同じファイルを1時間にn回ログに記録しています。私の構成:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

のapp.config:

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
    <log4net> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="MyFileAppender" /> 
    </root> 
    <appender name="MyFileAppender" type="log4net.Appender.FileAppender"> 
     <file value="application.log" /> 
     <appendToFile value="true" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level - %message%newline" /> 
     </layout> 
    </appender> 
    </log4net> 
+0

管理者は、その日までにリストされたログファイルを必要とします。どちらがうまいですが、30日間のログだけが必要です。 – PrivateJoker

関連する問題