为Eclipse插件添加日志框架

两种增强Eclipse日志功能的方法

为什么要采用日志?

良好的开发人员都知道精心设计、测试和调试的重要性。虽然 Eclipse 可以帮助开发人员实现这些任务,但是它怎样处理日志呢?很多开发人员相信对于良好的软件开发实践来说,日志是不可或缺的一部分。如果您曾经修正过他人部署过的程序,您无疑也会同意这一点。幸运的是,日志对于性能的影响很小,大部分情况下甚至根本不会对性能产生任何影响,而且由于日志工具非常简单易用,因此学习曲线也非常平滑。因此,对于现有的优秀工具,我们没有理由不在应用程序中添加日志功能。

可以使用的工具

如果您正在编写一个 Eclipse 插件,那么您可以使用 org.eclipse.core.runtime.ILog 所提供的服务,它可以通过 Plug 类的 getLog() 方法进行访问。只需要使用正确的信息创建一个 org.eclipse.core.runtime.Status 的实例,并调用 ILog 的 log() 方法即可。

这个日志对象可以接收多个日志监听器实例。Eclipse 添加了两个监听器:

一个监听器向 "Error Log(错误日志)" 视图中写入日志。

一个监听器向位于 “${workspace}/.metadata/.log" 的日志文件中写入日志。

您也可以创建自己的日志监听器,只需实现 org.eclipse.core.runtime.ILogListener 接口并使用 addLogListener() 方法将其添加到日志对象中即可。这样,每个日志事件都可以调用这个类的 logging() 方法。

虽然所有的内容都非常简单,但是这种方法存在一些问题。如果您希望修改一个已部署好的插件目标,那么应该如何处理?或者说要如何控制记录下来的日志信息的数量?还有,这种实现可能会对性能造成影响,因为它总是要向所有的监听器发送日志事件。这就是为什么我们通常只在极端的情况(例如错误条件)中才会看到要记录日志的原因。

另一方面,还有两个专门用于日志的杰出的工具。一个来自 Java 2 SDK 1.4 的 java.util.logging 包;另外一个来自 Apache,名为 Log4j。

这两个工具都采用了日志对象的层次结构的概念,都可以将日志事件发送到任意数目的处理程序(Handler,在 Log4j 中称为 Appender)中,它代表了发送给格式化程序(Formatter,在 Log4j 中称为 Layout)进行格式化的消息。这两个工具都可以通过属性文件进行配置。Log4j 还可以使用 xml 文件进行配置。

记录器可以有一个名称并与某一级别相关联。记录器可以继承父母的设置(级别,处理程序)。名为“org”的记录器会自动成为另外一个名为 “org.eclipse” 的记录器的父母;因此不管您在配置文件中怎样对“org”进行设置,这些设置都可以被“org.eclipse”记录器继承。

我更喜欢哪一个工具?这两个工具我都曾经用过,不过我比较喜欢 Log4j。只有在非常简单的程序中我才使用 java.util.logging,我并不想在这样的程序中添加 log4j.jar。关于这两个工具的详细介绍,请参阅 Java 文档和 Apache 的站点。

一种改进的日志

如果存在改进 Eclipse 日志体验的方法,那不是很棒吗?但这样做有两个问题:

缺少外部配置文件。

性能问题,同时还有缺乏对日志行为进行细粒度控制。

时间: 2024-08-02 13:22:17

为Eclipse插件添加日志框架的相关文章

使用Spring Boot日志框架在已有的微服务代码中添加日志功能

引言:我们需要在已有的微服务代码中添加日志功能,用于输出需要关注的内容,这是最平常的技术需求了.由于我们的微服务代码是基于SpringBoot开发的,那么问题就转换为如何在Spring Boot应用程序中输出相应的日志. 在传统Java应用程序中,我们一般会使用类似Log4j这样的日志框架来输出日志,而不是直接在代码中通过System.out.println()来输出日志.为什么要这么做呢?原因有两点.其一,我们希望日志能输出到文件中,而不是输出到应用程序的控制台中,这样更加容易收集和分析.其二

将Eclipse插件转换为RCP应用程序(下)

在上一篇里我们为一个普通的Eclipse插件添加了Application扩展,剩下来的 工作就很简单了,甚至不需要再编写一行代码.在 Eclipse 3.1里,把具有 Application的插件包装成RCP并输出的过程是通过建立产品配置文件(Product Configuration)来完成的. 在主菜单选择File->New->Other命令,在对话框里选择新建一个产品配 置文件,这个文件可以建立在任何位置,为方便起见我们就把它放在需要转换为 RCP的插件的主目录下好了.产品配置文件是一个

eclipse插件安装-在eclipse 中添加 SVN 每次走到一半 就报内部出错 今天折磨了我一天了

问题描述 在eclipse 中添加 SVN 每次走到一半 就报内部出错 今天折磨了我一天了 我确定以前就可以.. 解决方案 http://zhidao.baidu.com/link?url=pYdZ7D5LgA53J7mym0IBfYIDdyoUE4f1_8KjnvuDQY4pKs-F3RilVPo7MRmBFlAcB9qbsuU0CJu643KP3r6ucSPhbUGkstzW-Cy0W14hCva

了解Eclipse插件如何使用OSGi

Eclipse 和 OSGi 的关系,从 plugin.xml 到 manifest.mf Eclipse 集成开发环境(IDE)和 Eclipse Rich Client Platform(RCP)应用程序的核心由 Open Services Gateway Initiative(OSGi)规范的实现驱动.本文通过描述对 Eclipse 平台而言插件是什么 ,并跟踪从 Eclipse V2.1 到今天基于 OSGi 的实现中插件的发展,阐明了 Eclipse 与 OSGi 的关系. 还解释了

使用IBM WebSphere Application Server中Eclipse插件简化开发

本文将介绍如何使用 http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere Application Server Developer Tools for Eclipse 插件简化对数据访问应用程序的开发,以便将应用程序发布在轻型应用程序服务 Liberty 配置文件环境中.本文包含一个基于 JPA 的示例数据访问应用程序,用于演示 Liberty 配置文件的动态功能. Liberty 配置文件是 IBM WebSphere

利用OSGi解决Eclipse插件难题

使用 Open Services Gateway Initiative API 消除 Eclipse 插件依赖性 本文介绍了一个采用 XML 的插件示例,以便为定义好的扩展点注册扩展.通过使插件能够感知 Extention Registry 并提供 OSGi 服务,我们可以完成这一完整的组件退耦操作. 插件.扩展点.OSGi 如您所知,Eclipse 的组件架构是基于插件 的 -- 这意味着将一组代码组件化为单一的组件,然后利 用 Eclipse 框架注册为其组件之一,其他组件可以绑定该组件或调

使用TPTP对Eclipse插件进行性能剖析和调优

TPTP 及其各子项目简介 TPTP(Eclipse Test & Performance Tools Platform) 是 Eclipse 基金 会下的一个开源子项目,提供了一组基于 Eclipse 的工具,对软件开发的各个 阶段提供支持.基本已经覆盖了从测试到运行时性能分析.运行状态.日志分析 的全过程.从其项目首页来看,其主要开发者来自包括 IBM 和 Intel 在内的大 公司.更重要的是,由于其开放性,使得基于其上来开发自己的工具变得非常容 易,这样一来就极大地降低了开发 "

Eclipse插件功能研究

在整个 Java 开发人员社区,Eclipse 因为行业领先的 Java Development Tools (JDT) 而广为人知.但 Eclipse 构建目的在于促进插件的使用,而且在这一方面,它获得了惊人的成功.探索已经构建到 Eclipse 插件中的一些能力,比如使用 Ruby 等其他语言编程,或者是使用 OpenLaszlo 等环境构建交互式多媒体. 简介 越来越多的 Java 开发人员已经开始欣赏 Eclipse 的 JDT 提供的生产率和质量收益.Eclipse 对编写 Java

25 个让 Java 程序员更高效的 Eclipse 插件

原文:http://www.oschina.net/news/27773/25-best-free-eclipse-plug-ins-for-java?from=20120416 Eclipse提供了一个可扩展插件的开发系统.这就使得Eclipse在运行系统之上可以实现各种功能.这些插件也不同于其他的应用(插件的功能 是最难用代码实现的).拥有合适的Eclipse插件是非常重要的,因为它们能让Java开发者们无缝的开发基于J2EE和服务的应用程序. Eclipse的插件也能帮助他们开发不同应用架