优点&在服务器级别与应用程序级别配置日志记录的缺点

时间:2013-04-23 09:26:07

标签: java logging

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

我参加了此列表,但我希望其他人分享他们的经验:

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

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

1 个答案:

答案 0 :(得分:0)

  

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

  • 要回答这个问题我会说,是的,我们能做到。但在这种情况下,您的服务器和应用程序必须遵循适当的设计,否则所有应用程序可能会紧密耦合。


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


假设app1遵循包结构com.app1。和app2遵循com.app2。,那么你可以修改logger级别,如下所示,

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

但是如果您的app2依赖于app1,或者它有像这个com.app1.app2。*或一些常见软件包名称的软件包,那么您可能已经在logger属性上定义了更多,因此软件包结构和设计非常遵循单一记录机制非常重要。