通过日志监测java_通过日志监控并收集Java应用程序数据(3) - Go语言中文社区

通过日志监测java_通过日志监控并收集Java应用程序数据(3)


现在如果要记录包 cn.test.perf4j.example 下某些方法的执行时间,只需在方法签名加上注解 @Profiled。org.perf4j.aop.Profiled 也提 供了细颗粒度的定制。具体属性设置方法如下 :

清单 7. 注解 Profiled 设置

/** 1. 默认以方法名做标

记 tag 的名称 */

@Profiled

public void doService(){...}

/** 2. 自定义标记 tag 的名称并设定阈值 */

@Profiled(tag=”doTimedService”,timeThreshold =500L )

public void doService(){...}

其它支持的属性还有:

boolean el : tag 和 message 的设置是否支持 java EL 表达式语法;

String level : 设定日志级别;

boolean logFailuresSeparately : 若为真,正常和异常抛出的执行时间数据将分开统计;

Sring logger : log4.xml 中设置的 logger 名称。 如果是默认值,则此属性可省去。

在产品环境中,不方便重新编译代码,建议使用 ScopedTimingAspect,完全通过 配置文件控制监测的范围,不用在方法上加 Profiled 注解。具体用法可以参考 AspectJ 的用法。另外如果系统已采用 EJB3,可以把 org.perf4j.log4j.aop.EjbTimingAspect 做为拦截器加入。具体可以参考有关 EJB3@Interceptors 的用法 。

在 WebSphere 应用服务器中使用 Perf4j

WebSphere 应用服务器默认使用基于 JDk 中 java.util.logging 的日志 API 并且集中管理了整个系统的日志输出。Perf4j 必须单独生成自己的数据文件,以便于分析 。如果应用程序要部署到 WebSphere 应用服务器中,如下方法能够帮助我们将 Perf4j 记录的日志独立出来。

1. 指定 LogFactory 实现类:

在 /META-INF/services 目录中创建名为 org.apache.commons.logging.LogFactory 的文件,在文件中分别设定相对 Log4j 的配置,内容为 org.apache.commons.logging.impl.Log4j;还有一种方式是在 classpath 下创建 commons-logging.properties 文件,文 件内容为:

priority=1

org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

2. 在 Admin 控制台中,选 择 applications > Enterprise Applications > ''app name'' ,设定 ClassLoader 的模 式为 PARENT_LAST。

3. 将之前配置的 log4j.xml 同样放在 classpath 下。在 log4j.xml 中只须设定 Perf4jAppender。程序其它调用 java.util.logging 的日志仍由 WebSphere 统一控制。

生成可视化数据

目 前我们已经可以得到 Perf4j 生成的原始数据,不过为了易于分析这些数据,方便直观地将统计结果展现出来才是我们最终 需要的。这里介绍的两种方式均是利用 Perf4j 提供的特定 Appender 来发布数据到相应可视化工具。

通过 Java 管理扩展接口发布

Java 管理扩展接口(JMX)常用来监控 JVM 的运行状态以及动态管理配置系统。

通过 JmxAttributeStatisticsAppender 能将数据封装成标准的 JMX 管理构件的 MBean。配置见清单 8。

清单 8. 添加 JMX Appender

class="org.perf4j.log4j. AsyncCoalescingStatisticsAppender">

class="org.perf4j.log4j.JmxAttributeStatisticsAppender">

JConsole 是 Oracle JDK 自带的的 JMX 监控工具,当然也有很多第三方 JMX 工具可供选择 。图 2 是 JConsole 界面的截图,显示了 Perf4j MBean 具体内容及图表。

图 2.JConsole 实时显示 Perf4j MBean

29a1c7f04d2e5adb1a1ee8491f46aaa4.png

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_31688167/article/details/114314360
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2022-12-31 20:54:50
  • 阅读 ( 275 )
  • 分类:Go应用

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢