后端——框架——日志框架——logback——《官网》阅读笔记——第十章节(JMX)

第十章节介绍监控日志框架。原著中介绍了三种方式。

  1. JConsole方式,JConsole是一个Java tool,可以在JDK的bin目录下找到。
  2. JMX方式与jetty容器。本文省略
  3. JMX方式与Tomcat容器。因为对JMX不是很熟悉,本文省略。

1、JConsole方式

在使用JConsole监控日志框架之前,假定已存在至少一个完整的Web项目,并且项目中的日志框架为logback。至少存在一种Web容器,例如tomcat,jetty等

具体步骤如下:

  1. 第一步,在日志配置文件中,将<jmxConfigurator />添加到Configuration子标签的最开始处。当设置contextName标签时,<contextName>标签作为第一个子标签,jmxConfigurator作为第二个子标签。
  2. 第二步,启动Web容器,我使用tomcat,所以启动tomcat。
  3. 第三步,找到tomcat对应的JDK,在JDK的安装目录,bin文件夹下找到jconsole,打开,如下图所示:

  

  Tomcat容器对应的是org.apache.catalina,点击开始监控。

2、讨论

  1. 当同一个Web容器中存在多个项目时,必须在每个项目的日志配置文件中添加contextName,这个值是LoggerContext的名称,默认值为default,当存在多个时,contextName会造成冲突。

  2. 当同一个Web容器存在多个项目时,若其中一个项目被销毁,它对应日志框架的LoggerContext对象并不会被回收,此时JConsole中还可以看到该Bean,但是它已经没有任何意义,所以建议将LoggerContext对象的生命周期与ServletContext对象的生命周期绑定到一起。具体步骤如下:

    • 编写XXListener实现ServletContextListener,
    • 在contextDestoryed方法中调用LoggerContext的stop方法。
    • 将XXListener配置到web.xml中,或者使用程序方式调用addListener方法。
原文地址:https://www.cnblogs.com/rain144576/p/12304443.html