当前位置: 首页 > 面试题库 >

是每个类一个记录器,还是整个应用程序都可以访问的一组记录器?

董高朗
2023-03-14
问题内容

我有一个使用Java的项目,我创建了七个记录器,可从该程序的每个位置通过外观进行访问。但是在互联网上,我看到很多例子,每个班级都有一个记录器。

推荐的记录方式是什么?


问题答案:

每个类中的记录器都更好,更易于扩展。原因是在一类中定义一个记录器很容易将实际的记录API与记录器的配置(格式,持久性)分开。我使用了多个大型复杂的Java软件(>
100万行代码),每个类都使用一个记录器。

同样,“每个类一个记录器”的定义并不意味着每个类都使用不同的记录器实例。

class Foo {
    private static final Logger log = Logger.getLogger( Foo.class );
}


class Bar {
    private static final Logger log = Logger.getLogger( Bar.class );
}

尚不清楚上面代码中引用的两个记录器是否使用相同的记录器实例。通常,有一个配置位置(在属性文件或代码中),用于指定Foo和Bar中的记录器是否共享记录器实例。

因此,“每个类中的记录器”仅为每个类定义一个记录器,但是此类记录器可能引用不同类中使用的同一记录器实例



 类似资料:
  • 我使用的是播放框架,其中日志是默认的记录器引擎。为了便于跟踪,我希望将两个不同的活动(和)记录在两个单独的文件中。为此,我有两个追加器和两个记录器。每个记录器都用特定的appender标记。 我希望通过事务记录器(如登录或注册相关活动(如 但不管用。有什么想法吗? 我所说的“不工作”是指相同的日志被附加到两个记录器中,而不是特定于特定的日志。例如。如果我从播放代码调用,事务和登录记录器都将用户X已

  • ,日志记录将进入一个文件; (路径)/service_name/service_name.log 我想用logback复制这种行为,但在logback.xml配置中获取“logger”名称时遇到了真正的困难。它可以在log encoder.pattern中看到,即“%d%-5level%logger{35}-%msg%n”。

  • 给定:我在Kafka中有两个主题,假设主题A和主题B。Kafka流从主题A中读取一条记录,对其进行处理,并产生与所消耗记录相对应的多条记录(假设recordA和recordB)。现在的问题是我如何使用Kafka流来实现这一点。 在这里,读取的记录是消息;处理之后,它返回一个消息列表。如何将此列表划分为两个生产者流?任何帮助都将不胜感激。

  • 我有一个用例,其中两个应用程序app1和app2部署在Oracle Weblogic Server 12c(管理服务器)(Linux机器)上。然而,两名开发人员正在分别开发应用程序,但问题在于日志的可访问性,即日志被写入一个文件中。 管理员服务器。log($MW_HOME/user_projects/domains/wls_domain/servers/AdminServer.log),两人都希望

  • 我有以下列表-> 该逻辑将获取那些满足此条件的记录,也将获取那些不满足此条件的记录,如D/E的最后两行,雇员没有为工资定义任何值,我也应该获取这些值。

  • 问题内容: 我正在使用 Apache Commons Logging™ 。现在,我想使用实现,但是当我更改级别时,库中的记录器问世了。我希望它关闭它们。 有没有一种简单的方法可以更改整个软件包的日志级别(Log4j可以做到这一点)吗? 我试图设定 org.apache.commons.logging.simplelog.log.foo =致命 在属性文件中禁用记录器(将其设置为致命即可),但它不起