1

log4netのILogの署名がオブジェクトを引数として使用するのはなぜですか?例えば:

    void Info(object message);

なぜそれを明示的にして文字列を期待しないのですか?たとえば、メッセージを平坦化して表形式の構造に変換するための、舞台裏での高度な反射機能はありますか?それとも、元の作成者の単なる後知恵でしたか?

これはオブジェクトであることは前者を示しているようですが、これに関するドキュメントはありません。

また、オブジェクトをデータベースに保存することを計画していますが、log4netは、メッセージのコンテンツに簡単にインデックスを付けることができるように、エンティティを自動的に作成できますか?IE。3つのプロパティを持つオブジェクトを渡す場合、3つのプロパティを別々の列に表示したいと思います。関係と同様に、私は関係がその場で構築されるのを見たいと思っています。

4

1 に答える 1

3
  1. 私はクリスに同意します、彼らはobjectあなたが何でも渡すことができるように使用しました。ToString()便利な実装を提供することだけを心配する必要があります。同様のことがで行われstring.Format()ます。

  2. Log4netは、「データベースシナリオ」を直接サポートしていませんが、あまり費用をかけずに実装できるはずです。基本的に、独自のアペンダーを作成し、MessageObjectプロパティを使用してロギングイベントから元のMessageObjectを取得する必要があります。そうすれば、好きな方法でデータベースに「簡単に」書き込むことができます。

于 2012-06-12T11:46:25.347 に答える