0

在 java 中配置日志记录有时会很棘手(由于现有的多个日志记录 API),并且可以在不同级别(服务器、应用程序,两者?)完成。那么在这些级别配置日志记录的优缺点是什么?

我带着这份清单来了,但我希望其他人分享他们的经验:

  • 服务器级
    • 优点
      • 集中配置
      • 部署前不得修改应用程序
      • 可以登录到由服务器管理的资源(相对于服务器路径的文件,DB...)
    • 缺点
      • 必须确保每个应用程序使用相同的日志记录 API
      • 随着部署更多应用程序,配置会变得越来越大
      • 服务器可能对每个应用程序的类别 => 日志级别映射了解太多
  • 应用级
    • 优点
      • 应用程序可以使用其选择的日志记录 API
      • 应用程序可以配置自己的日志记录级别
    • 缺点
      • 必须在部署之前编辑配置,以指定日志文件的路径(如果相对于服务器)或日志数据库的 JNDI 名称

有没有办法将两者结合起来只保留专业人士?就像在服务器级别配置记录器,然后在应用程序级别配置类别=> 日志级别映射?

4

1 回答 1

0

有没有办法将两者结合起来只保留专业人士?就像在服务器级别配置记录器,然后在应用程序级别配置类别=> 日志级别映射?

  • 要回答这个问题,我会说,是的,我们可以做到。但在这种情况下,您的服务器和应用程序必须遵循正确的设计,不利的一面是,所有应用程序都可能变得紧密耦合。


如果您的应用程序是基于 Java 的,那么您实际上可以为所有应用程序创建一个记录器文件,并且您必须在其中设置应用程序记录器级别,前提是您的应用程序遵循不同的包结构。


假设 app1 遵循包结构 com.app1。. 和 app2 跟随 com.app2。. ,然后您可以修改记录器级别,如下所示,

*.*.com.app1 = logger_level1
*.*.com.app2 = logger_level2

但是如果你的 app2 依赖于 app1,或者它有像 com.app1.app2.* 这样的包或一些常见的包名,那么你可能在 logger 属性上定义了更多,所以包结构和设计对于遵循单一的日志记录机制。

于 2013-04-23T10:45:10.563 回答