Monday, July 27, 2009

perf4j中使用Piped I/O Stream

这几天是在作JMX和 一些关于Performance的调研,由于JMX三年前在Perf中用过,所以这次重点不是JMX,二是怎样用JMX来管理,监控WEBGUI,另外就 是怎么把一些和Performace相关的接口暴露成JMX。今天做了一些perf4j,一个开源的performce工具的调研,其中碰到一个问题,还是给我自己上了一课。那就是在perf4j里有一个接口使用PrintStream作参数,然后perf4j把解析后的日志信息输出到 PrintStream,但是我有一个需求就是想要返回格式化后的日志内容,今天花了很多时间在找已有的JavaAPI和第三方的API,另外就是使用 PipedInoutStream和PipedOutputStream,最后还是没有找到太好的方案,这时突然想到,为什么我不自己写个类实现 OutputStream,内部用StringBuffer来缓存格式化后的日志内容呢,相到这,我就迅速的写了一个非常简单的类很轻松的实现了原本自己 的需求,代码如下:
http://code.google.com/p/garbagecan/source/browse/trunk/java/perf4jstudy/src/main/java/com/googlecode/garbagecan/perf4jstudy/LogParserUtil.java
另外在做这些调研的时候还试着使用了一下PipedInputStream和PipedOutputStream两个流
http://code.google.com/p/garbagecan/source/browse/trunk/java/perf4jstudy/src/main/java/com/googlecode/garbagecan/perf4jstudy/PipedIO.java

No comments: