2011-03-10 18 views
14

我需要將日誌記錄添加到我的F#項目中。 對於我們使用的C#代碼:Log4net或NLog(可能的兩種最流行的.Net日誌記錄框架)。什麼日誌框架更適合在F#代碼中使用

什麼是在F#代碼中使用的最佳選擇? 我的意思是,是否有任何特定的日誌框架編寫用於F#代碼?

回答

9

使用Logary

https://github.com/logary/logary

Logary是一種高性能,多目標的日誌記錄,度量和醫療檢查單和.Net庫。目標包括:textwriter,控制檯,調試器,nlog,zipkin,nimrod,riemann,logstash,sqlite,sql server,graphite,loggr,elmah.io,logentries。適配器適用於:和藹,頂級。

Logary主要是用F#編寫的。

Install-Package Logary 

docs here

+1

充分披露:[Henrik是logary的主要貢獻者。]( https://github.com/logary/logary/graphs/contributors) – mbx 2017-07-06 11:23:39

11

據我所知,他們對於F#是一樣的,也就是說F#沒有任何關於它們的具體細節(無論是好是壞)。除配置外,所有日誌記錄庫的使用情況都差不多。

您可能想要添加的是啓用了printf的日誌記錄,因此您可以僅使用而不是logger.DebugFormat("Hello {0}", "world")logger.Debug(sprintf "Hello %s" "world")。使用type extensionskprintf來做到這一點。

+0

謝謝你的答案 - 這可以作爲解決準備我自己的記錄,基於log4net的F#中類似的語法 – Vitaliy 2011-03-10 16:50:56

+0

我經常使用'kprintf'做一組類似的功能你建議,但是我把它們發佈到一個'MailboxProcessor'上,它可以異步地寫入我正在使用的任何底層日誌框架 - 這可能只是以不同的顏色寫入控制檯,用於簡單的命令行工具。 – 2011-03-10 16:53:37

+0

我在這裏問了一個類似的問題:http://stackoverflow.com/questions/5277902/printf-style-logging-for-f隨便闡述:) – Alex 2011-03-11 20:23:09