应用程序中的 log4net 多个记录器与单个记录器?
log4 net multiple loggers vs single logger in an application?
我们有几个不同模块的 c# 应用程序。我们正在使用 log4net 进行日志记录。应该如何记录消息:
- 创建集中式日志记录项目:应用程序 classes 使用集中式日志记录项目的 dll 静态方法来记录消息。因此,应用程序中没有 class 创建记录器,此 dll 或
将满足所有记录要求
- 应用程序本身中的所有类型都创建了自己的记录器:易于检查哪种类型生成了哪种消息,易于管理不同类型的日志记录要求i.e.we 可以独立地限制每种类型的日志记录行为,例如 class 记录所有日志,但其他仅记录登录错误。
首选的做法是什么?
方法 2 有其自身的优势,但方法 1 看起来很干净,因为每个 class 将不再负责调用 "GetLogger(typeOf(className))"。
推荐的方式是什么?
这真的取决于用例,当制作一个库时,使用方法 1 是有意义的。但是当制作一个复杂的程序时,方法 2 将帮助您独立管理不同的记录器。方法 2 还提供了像方法 1 一样在您的项目中记录所有内容的选项。但是方法 1 不支持记录器上的差异。所以在大多数情况下,方法 2 似乎是更好的选择。
我们有几个不同模块的 c# 应用程序。我们正在使用 log4net 进行日志记录。应该如何记录消息:
- 创建集中式日志记录项目:应用程序 classes 使用集中式日志记录项目的 dll 静态方法来记录消息。因此,应用程序中没有 class 创建记录器,此 dll 或 将满足所有记录要求
- 应用程序本身中的所有类型都创建了自己的记录器:易于检查哪种类型生成了哪种消息,易于管理不同类型的日志记录要求i.e.we 可以独立地限制每种类型的日志记录行为,例如 class 记录所有日志,但其他仅记录登录错误。
首选的做法是什么?
方法 2 有其自身的优势,但方法 1 看起来很干净,因为每个 class 将不再负责调用 "GetLogger(typeOf(className))"。
推荐的方式是什么?
这真的取决于用例,当制作一个库时,使用方法 1 是有意义的。但是当制作一个复杂的程序时,方法 2 将帮助您独立管理不同的记录器。方法 2 还提供了像方法 1 一样在您的项目中记录所有内容的选项。但是方法 1 不支持记录器上的差异。所以在大多数情况下,方法 2 似乎是更好的选择。