许多论坛和 StackOverflow 的帖子都建议按类创建日志记录器。
快速查看 Log4j 的 getLogger(String name)
实现后发现,所有的日志记录器都存储在静态映射中。
我想知道如果应用程序中有数千个类并且每个类都定义了一个日志记录器,是否会引起内存/性能问题。
或者,为什么我们不能在应用程序中定义一些标准日志记录器(基于某些功能标准),然后让开发人员在类中使用它们。我理解单独定义一个记录器允许我们更改其日志级别,但是如果有足够预定义的日志记录器,则我认为这不是个大问题。
我查看了Is a logger per class or is a set of loggers that are accessed by the entire application preferred? 和 Log4J: Strategies for creating Logger instances 这两个问题,但它们似乎没有涉及到此主题。
LoggerFactory.getLogger(“random”);
。在每个类中保留“private static”字段只是使其在内部使用更容易。 - Sotirios Delimanolis\``来表示代码片段。)您应该拥有的唯一日志记录代码是
debug(..),
info(..)和其他类似的代码。而且,该代码应该非常依赖于使用它的类(反之亦然)。事实上,您不需要自定义类来获取对另一个记录器的引用。
LoggerFactory.getLogger(..)`为您提供了访问库中管理的所有记录器的权限。您的配置是唯一的访问点。 - Sotirios Delimanolis