2017-05-08 62 views
4

我有一個C#控制檯應用程序項目,它使用log4net作爲日誌記錄庫。在整個應用程序中都有記錄語句(log.Debug(),log.Error()等),它們在程序運行時打印到控制檯。最小化生產中的日誌語句

在生產環境中更改日誌語句的最佳方法是什麼,以最大限度地減少日誌造成的執行時間?我希望一些報表根本不打印出來,並且一些記錄報表只能在生產過程中打印出來。

我正在考慮在Web.config文件中添加新的設置,它決定了日誌記錄的變化。不過,我想我也需要重寫log.Debug()log.Error()方法以使用新設置,但我不確定如何執行此操作。任何人都可以建議嗎?

+1

你有log4net的配置從app.config文件中讀取配置?如果是這樣,你應該能夠設置日誌級別關閉或錯誤,等等http://stackoverflow.com/questions/8926409/log4net-hierarchy-and-logging-levels –

回答

0

您應該已經從應用程序中提取了日誌庫,這樣您就可以控制日誌記錄行爲,並使您的項目鬆散地耦合到log4net依賴項。

它可能不是您希望的簡短的一行答案,但我強烈建議使用這種設計模式,因爲它會爲您節省大量時間。 Heres a brief article that shows the concept

+0

所以一般的想法將不是調用日誌。調試()直接在一個類中,你調用另一個類中的方法(例如'log()'),然後調用log.Debug()與不同的消息等取決於設置Web.config?有沒有這樣做的標準/最佳實踐方式? – user2181948