应用程序中的 log4net 多个记录器与单个记录器?

log4 net multiple loggers vs single logger in an application?

我们有几个不同模块的 c# 应用程序。我们正在使用 log4net 进行日志记录。应该如何记录消息:

  1. 创建集中式日志记录项目:应用程序 classes 使用集中式日志记录项目的 dll 静态方法来记录消息。因此,应用程序中没有 class 创建记录器,此 dll 或
  2. 将满足所有记录要求
  3. 应用程序本身中的所有类型都创建了自己的记录器:易于检查哪种类型生成了哪种消息,易于管理不同类型的日志记录要求i.e.we 可以独立地限制每种类型的日志记录行为,例如 class 记录所有日志,但其他仅记录登录错误。

首选的做法是什么?

方法 2 有其自身的优势,但方法 1 看起来很干净,因为每个 class 将不再负责调用 "GetLogger(typeOf(className))"。

推荐的方式是什么?

这真的取决于用例,当制作一个库时,使用方法 1 是有意义的。但是当制作一个复杂的程序时,方法 2 将帮助您独立管理不同的记录器。方法 2 还提供了像方法 1 一样在您的项目中记录所有内容的选项。但是方法 1 不支持记录器上的差异。所以在大多数情况下,方法 2 似乎是更好的选择。