公司介绍 产品展示 业务支持 解决方案 文档资料
网站导航 访客留言 技术论坛
     
     
  产品资料
  业界动态
  JAVA技术


首  页 > 文档资料 > 产品资料  
 
  Log4J Monitor使用指南

每次看到Dos控制台打印的StackTrace信息(Resin、Tomcat、JBoss、Weblogic等),我都在想,如果这些信息如果能直接反映给IDE工具多好,我只需点击StackTrace中的出错位置信息的超链接就可以定位到相应的文件,这样多快捷啊。现在每次都是从控制台将StackTrace信息拷贝下来(这个过程挺麻烦的),然后在贴到Notepad上,在分析一下,确定出错文件位置,然后使用IDE工具打开,进行修复,这样的过程我每天都在重复着。有没有好的解决办法?下面就向大家介绍Log4J Monitor,上述烦人的过程将被彻底简化,下面就开始吧。

首先我们要从http://www.intellij.org/twiki/bin/view/Main/LogMonitorPlugin下载Log4J Monitor的安装包,这是一个zip文件,解压后我们只需将该目录下的log4jmonitorplugin.jar文件拷贝到IDEA的plugins目录下即可,这里我们想对这款插件做一个介绍。Log4j Monitor包含两个部分,监听程序和Log4J Appender。监听程序是基于Chainsaw(一款图形化查看Log4j日志信息的工具),在IDEA下的plugin方式运行,运行后将监听端口(4445)。Log4J Monitor的Appender则是Log4J Appender的标准扩展,可以将Log4J的日志信息传递给对应的监听程序,监听程序则将接收到的日志信息图形化呈现出来,这就是Log4J Monitor的使用原理。

我们已经将Log4J Monitor的监听部分以插件的方式在IDEA下安装了,启动IDEA的项目后,Log4J Monitor的监听程序也将启动起来。下面我们要做的事情就是在log4j.xml中在配置一个Appender,将日志信息传递给监听程序。以下信息就是该Appender在lo4j.xml中的声明:


<appender name="CHAINSAW_CLIENT"
class="com.webspherious.log4jmonitor.log4j.IntelliJAppender">
<!-- param name="useIdeaHack" value="true"/ -->
<!-- param name="verboseLevelChange" value="false"/ -->
<!-- param name="useStringSerialization" value="true"/ -->
<!-- param name="redirectSystem" value="true"/ -->
<param name="RemoteHost" value="localhost"/>
<param name="Port" value="4445"/>
<param name="LocationInfo" value="true"/>
<param name="ReconnectionDelay" value="10"/>
</appender>

然后我们只需将其加到定义好的logger中即可,当然你可以直接将其加入到<root>元素下即可,然后你需要将log4jMonitor解压目录下的log4jmonitor.jar添加到程序或web server的classpath中,这样客户端就配置完毕啦。提示:如果你想多个Log4J Monitor监听程序发送信息,只需多配几个这样的Appender即可。

当你启动程序或Web server后,你会发现你使用Log4J记录的日志信息都传送给IDEA的log4J Monitor插件啦,在该插件的工具窗口中,你可以看到所有的日志信息。这个时候你所看到的日志信息,已不在是简单的文本,经过Log4J Monitor处理后,已经完全和IDEA融合啦。当我们点击某条日志信息时,在“Detail”面板中将显示该日志的位置信息:该日志输出语句所在的文件及其位置,并且以超链接方式显示,我们就可以快速定位到日志输出语句在文件中的位置。

“detail”面板包含两部分信息:Message和StackTrace。Message是我们在输出的信息,StackTrace则是对应此信息的堆栈信息(可选的),如果我们在日志语句中未记录下来,则不会显示,一般在程序的catch语句中,我们会将其记录下来。

上面我们讲到Log4J Monitor会告诉我们日志语句的所在文件的位置信息,如果包含StackTrace的话,Log4JMonitor同样会进行分析,将StackTrace中的一些文件位置信息以超链接方式显示处理,你同样可以快速定位到抛出异常的语句位置,这些StackTrace都是经过分析处理的,不仅仅是普通文本,会包含更多的文件位置信息。下图就是一个对StackTrace进行处理的结果,文件的位置信息都以蓝色表示出来。“Demo2.java:44”表示日志语句所在的位置,“Demo2.java:41”则表示抛出异常的java语句所在的位置,通过点击这些超链接,你马上就可以定位到所在的文件位置来修改错误,方便了很多。

Log4J Monitor还有很多的设置选项,如设置日志过滤级别、字体显示等,你可以修改其中的一些配置选项,更好地满足你的实际需求。

总结:通过Log4J Monitor我们可以将日志信息引入到IDEA中,而且能够很好的整合。我们相信修复一个错误很简单,但是其中的查找过程最浪费你的时间,所以我们要简化这个查找过程。其实在我们的日常Web应用开发中,我们只需配置好Web应用log4j.xml,调整一些Log4J Monitor关注的日志级别,在启动Web server后,我们就能抓住其中的Excpetion信息进行处理,而不是去Dos控制台再慢慢去查找,定位错误将非常快捷。