2012-04-19 30 views
2

remotingappender用にlog4netを設定するには、以下のxml設定があるとすべて動作します。remotingappenderをlog4netにプログラム的に追加する方法

<log4net> 
    <appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" > 
    <sink value="tcp://localhost:8085/LoggingSink" /> 
    <lossy value="false" /> 
    <bufferSize value="1" /> 
    <onlyFixPartialEventData value="true" /> 
    </appender> 
    <root> 
    <level value="ALL" /> 
    <appender-ref ref="RemotingAppender" /> 
    </root> 
</log4net> 

コード内で同じことをしたい。私は小切手を探して、次のような例を見つけました。しかし、私はそれを働かせることができませんでした。

 ILog log = log4net.LogManager.GetLogger("logName"); 
     Repository.Hierarchy.Logger l = (Repository.Hierarchy.Logger)log.Logger; 

     // set level 
     l.Level = l.Hierarchy.LevelMap["ALL"]; 
     // create appander 
     Appender.RemotingAppender remotingAppender = new Appender.RemotingAppender(); 
     remotingAppender.Name = "custom"; 
     remotingAppender.Sink = "tcp://localhost:8085/LoggingSink"; 
     remotingAppender.Lossy = false; 
     remotingAppender.BufferSize = 1; 
     //remotingAppender.Fix = log4net.Core.FixFlags.All; 
     // create pattern 
     log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout(); 
     layout.ConversionPattern = "%d [%thread] %-5p %c [%a] - %m [%line] [%M]%n"; 
     layout.ActivateOptions(); 

     remotingAppender.Layout = layout; 
     remotingAppender.ActivateOptions(); 

     // add appender 
     l.AddAppender(remotingAppender); 
     // perform logging (doesnt work) 
     log.Warn("my warning"); 
     log.Error("my error"); 

私のコードの欠けている部分は何ですか?

+0

?言い換えれば、ファイルを開くときに表示されたログメッセージを見ることができますが、ここではどのようにすればいいのですか? –

答えて

0

私はついにそれを働かせました。私はまず負荷とほぼemptpyのXML設定をします。次に、リモートリスナーと同じパターンストリングを持つパターンレイアウトを配置します。私の修正xmlファイルは以下の通りです:

<log4net> 
    <root> 
    <level value="ALL" /> 
    </root> 
</log4net> 

と私は(program.cを)自分のアプリケーションの開始時に、この設定をロード我々が記録されたメッセージを表示することができ

log4net.Config.XmlConfigurator.Configure(file) 
0

log4net.Config.BasicConfigurator.Configure(...) oveloadsのいずれかを試してください。

+0

remotingAppenderオブジェクトの作成後に** log4net.Config.BasicConfigurator.Configure(remotingAppender); **行を追加しようとしました。しかしそれはまだ仕事をしません。なぜそれが働かないのか理解できません。私はちょうどここに立ち往生! – Fer

+0

コンソールアペンダーでは私のために働く。私はリモートのものをテストすることはできません。ごめんなさい。 – Villlem

+0

私は** FileAppender **と同じコードを試しました。私はちょうどファイルアペンダーを作成し、アペンダーに追加しました。アプリケーションを実行すると、ログファイルが作成されましたが、ログメッセージはありません。だから私はアペンダーは作成されているが、ログは送信されないと思われる。あなたは何か考えていますか? – Fer

関連する問題