为 Eclipse 插件添加日志框架:两种增强 Eclipse 日志功能的方法
2009-12-14 00:00:00 来源:WEB开发网整个框架是在一个插件项目 com.tools.logging 中实现的。为了显示它是如何工作的,我创建了两个插件:
HelloPlugin是从一个项目模板中构建出来的,它显示一个消息对话框,其中显示 "Hello, Eclipse world"。
TestPluginLog 作为一个与 HelloPlugin 的一个从属插件添加的,因此它可以被勾挂在相同的日志级别中。它有一个方法 dummyCall() ,可以使用 Eclipse API 添加一条假消息,然后它会被重定向到 HelloPlugin 的日志中。
其他插件的从属类型都已经设置好了,例如 org.eclipse.ui 或 org.eclipse.core.runtime。
为了显示 logger.properties 配置文件的强大功能,在创建该文件时我非常小心。正如您在清单 7 中看到的一样,我们定义了两个 appender: appender A1 是一个 PluginFileAppender 类,它被分配给根记录器。其他记录器都是从这个根记录器继承而来,都将使用这个 appender。因此,所有的日志,包括来自 TestPluginLog 插件的日志,都被写入一个位于插件所在位置的文件中。
清单 7. HelloPlugin 项目中的 Logger.properties 文件log4j.rootCategory=, A1
# A1 is set to be a PluginFileAppender
log4j.appender.A1=com.tools.logging.PluginFileAppender
log4j.appender.A1.File=helloplugin.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%p %t %c - %m%n
# A2 is set to be a PluginLogAppender
log4j.appender.A2=com.tools.logging.PluginLogAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%p %t %c - %m%n
# add appender A2 to helloplugin level only
log4j.logger.helloplugin=, A2
更多精彩
赞助商链接