为什么log4net使用对象?

时间:2012-06-12 01:58:20

标签: logging indexing log4net

为什么log4net中的ILog签名使用object作为参数?例如:

    void Info(object message);

为什么不让它明确并期望一个字符串?幕后是否有一些复杂的反射功能,例如将消息展平并将其转换为表格结构?或者它只是原始创作者的后见之明?

这是一个对象似乎表明前者,但我没有看到任何关于此的文档。

另外我打算将对象存储在数据库中,log4net可以自动为我创建实体,以便邮件的内容很容易编入索引吗? IE浏览器。如果我传入一个具有3个属性的对象,我想在单独的列中看到3个属性。与关系类似,我希望看到即时建立的关系。

1 个答案:

答案 0 :(得分:3)

  1. 我同意克里斯的观点,他们使用object以便你可以传递任何东西。您只需要担心提供有用的ToString()实现。类似的事情在string.Format()

  2. 中完成
  3. Log4net不直接支持您的“数据库场景”,但应该可以实现它而不需要太多支出。基本上,您需要编写自己的appender并使用MessageObject属性从日志记录事件中检索原始MessageObject。然后,您可以“轻松”以任何方式写入数据库。