用Java Instrumentation在类加载时增添记录[Java编程]
本文“用Java Instrumentation在类加载时增添记录[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在解析程序出错的缘由时,理解它当时的状况将是非常有效的.在很多情形下,我们可以通过仓库追踪实现此目的,但这些信息常常都是不可用的,大概您需求的大概是程序在出错时处理数据的相关信息.
传统做法是利用 log4j 和 Java Logging API 等记录框架,然后再通过人工来编写和保护所需的记录语句.这种操作非常单调乏味且简单出错,普通合适自动实现.Java 5 增添的 Java Instrumentation 机制答应您通过供应 "Java 代理" 来查抄和改正加载的类字节代码.
本文将展示若何实现这种 Java 代理,它借助尺度 Java Logging API 透明地对类中全部办法增添进口和出口记录.以 Hello World 为例:
public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World");
}
}
下面是增添了进口和出口记录语句的同一个用例:
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LoggingHelloWorld {
final static Logger _log = Logger.getLogger(LoggingHelloWorld.class.getName());
public static void main(String args[]) {
if (_log.isLoggable(Level.INFO)) {
_log.info("> main(args=" + Arrays.asList(args) + ")");
}
System.out.println("Hello World");
if (_log.isLoggable(Level.INFO)) {
_log.info("< main()");
}
}
}
以上是“用Java Instrumentation在类加载时增添记录[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |