大多数开发人员强烈建议您使用的任何日志框架(log4net,NLog,MS Diag等)都要做两件事:
1)为粒度实现特定于类的记录器,而不是通过Singleton发送所有内容 2)为您的日志框架创建一个Facade来掩盖实际的框架选择(例如,您可以无缝地将log4net换成NLog)
第二个我不知道我买了多少,这似乎是一个过度设计解决方案的完美例子。例如,我可以'编写我的应用程序,使其完全与数据库无关,并且能够连接到任何数据库提供程序。但实际上有多少必要? 95%的时间你选择你的目标数据库类型,你坚持使用它,对我来说一个日志框架是一回事,我选择了NLog,这是我打算用的生命周期该项目。如果在5年后我需要将其切换出来,那么他们可能会成为我需要改变的其他一些东西,所以我会在重写过程中这样做。
第一项虽然看起来可能有用但应用。有人可以向我提供他们如何利用此功能的一些具体示例吗?你会如何在实践中实现这一点?就像我说有一个数据访问模块突然因某些未知原因而失败...我如何动态修改我的日志记录设置以专注于该模块并获取详细的日志信息?他们的程序化手段是告诉NLog在应用程序运行时重新加载其设置吗?
谢谢