为静态适配器编写 Java 类

在创建静态日志解析器时,适配器配置文件的抽取程序、解析器和格式化程序组件会被替换为 Java 类。静态解析器类应该实现接口 org.eclipse.hyades.logging.parser.IParser。这可以通过扩展抽象类 org.eclipse.hyades.logging.parser.Parserorg.eclipse.hyades.logging.parser.MonitoringParser 来完成。

扩展 Parser 类

当您需要创建一个静态解析器,以用于解析不再被更新的日志文件或者在上下文执行期间对日志文件执行一次解析时,应该使用这个类。如果使用了这个类,在配置上下文实例时就一定不能选中“连续操作”复选框。

  1. 添加 import 语句 import org.eclipse.hyades.logging.parsers.Parser;
  2. 在该类中添加下列方法:

注意:可以使用受保护方法 Parser.readALine() 来从日志文件中读取数据。此方法从日志文件中读取一行,如果它在读取该文件时发生了错误,就会抛出异常。该异常将包含有关读取失败原因的信息。在本发行版中,建议您不要使用在出错时返回 NULL 的现有 readLine() 方法。

扩展 MonitoringParser 类

当您需要创建可以持续不断地监视日志文件的静态解析器时,应该使用这个类。注意:这个类将允许日志文件被监视,即使该日志文件在监视启动时不存在亦如此。必须扩展抽象类 org.eclipse.hyades.logging.parser.MonitoringParser。这个类扩展 Parser 类。实现有关 Parser 类的内容中描述的方法,但要注意下列事项:

  1. 添加 import 语句 import org.eclipse.hyades.logging.parser.MonitoringParser
  2. 如果覆盖了下列 Parser 方法,则确保覆盖方法调用超类的相应方法:
  3. parseNext() 方法中,在它返回 NULL 以指示当前没有更多已解析的记录可供返回时,添加对 setEndOfFile() 的调用。这将确保下次调用 readALine() 时检查日志文件以确定该文件是否已更改并且有新记录可供解析。
  4. 如果静态解析器需要使用一个命令来将日志文件转换为更易于解析的格式或者生成日志文件,则必须在调用 setConfiguration() 后使用下列其中一个方法调用来对 MonitoringParser 类指定该命令:setConverterCommand(String)setConverterCommand(String[])
    如果该命令将日志数据写入一个文件,而该文件的名称与 setConfiguration() 中的配置参数中指定的名称不同,则必须使用 setFilename(String) 方法对 MonitoringParser 类指定新的日志文件名。

注意

  1. org.eclipse.hyades.logging.parsers 插件现在依赖于 org.eclipse.hyades.logging.adapter 插件。
  2. MonitoringParser 类中,除 readALine() 方法以外,未提供对日志文件的直接访问。应该将当前使用 Parser 类的 logFile 成员来直接从日志文件读取数据的静态解析器修改为使用 readALine() 方法。

一旦您编写并测试了 Java 解析器类,就可以将适配器配置文件的传感器组件配置为引用这个类。

相关概念
Hyades 通用日志适配器概述
公共基本事件格式规范

相关任务
创建日志解析器
创建静态适配器
配置传感器组件

相关参考
适配器配置文件结构
适配器配置编辑器
正则表达式语法