在生产环境中最小化日志记录

5

我有一个 C# 控制台应用程序项目,它使用 log4net 作为日志库。在整个应用程序中,会有一些日志语句 (log.Debug(), log.Error(), 等等),这些语句将随着程序运行而打印到控制台。

在生产环境中如何更改日志语句以最小化由于日志记录引起的执行时间?我希望有些语句根本不会打印出来,并且只有某些日志语句在生产期间才会被打印出来。

我考虑在 Web.config 文件中添加新的设置,以确定日志记录的更改方式。但我认为我还需要覆盖 log.Debug()log.Error() 方法,使其与新的设置一起工作,但我不确定如何做到这一点。是否有人能给予建议?


2
你是否已经配置了log4net以从app.config文件中读取配置?如果是这样,你应该能够将日志级别设置为OFF或ERROR等。https://dev59.com/YGox5IYBdhLWcg3w3X9S - Andrew Harris
2个回答

1

0

你应该将日志库从应用程序中抽象出来,这样你就可以控制日志行为,并使项目与log4net依赖松耦合。

这可能不是你希望得到的简短答案,但我强烈建议使用这种设计模式,因为它将节省你大量时间。这里有一篇简短的文章展示了这个概念


因此,一般的想法是,不直接在类中调用log.Debug(),而是调用另一个类中的方法(例如'log()'),该方法根据Web.config中的设置使用不同的消息等调用log.Debug()。有没有标准/最佳实践的方法来做到这一点? - user2181948

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接