2017-05-08 95 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