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 回答