2012-06-12 62 views
1

爲什麼要在log4net使用對象中使用ILog的簽名作爲參數?例如:爲什麼log4net使用對象?

void Info(object message); 

爲什麼不直接將其顯式化並期望一個字符串?在幕後是否有一些複雜的反射能力可以將信息展平並將其轉換爲表格結構?還是僅僅是對原始創作者的後見之明?

這是一個對象似乎表明前者,但我沒有看到任何有關此文件。

另外我打算將對象存儲在數據庫中,log4net可以自動爲我創建實體,以便消息的內容很容易被索引? IE瀏覽器。如果我傳入一個包含3個屬性的對象,我希望在單獨的列中看到3個屬性。與關係類似,我希望看到建立在關係上的關係。

+1

所以它可以採取任何支持'ToString',我的猜測。 –

回答

3
  1. 我同意克里斯,他們使用object,這樣你就可以傳遞任何東西。你只需要擔心提供一個有用的ToString()實現。類似的東西在string.Format()中完成。

  2. Log4net不直接支持你的「數據庫場景」,儘管應該可以在沒有太多支出的情況下實現它。基本上你需要編寫你自己的appender,並使用MessageObject屬性從記錄事件中檢索原始MessageObject。然後,您可以以任何您想要的方式「輕鬆」寫入數據庫。

+0

謝謝我會看看那個。 – Alwyn

相關問題