Skip to content

增加对某种日志类型的支持

袁逸凡 edited this page Aug 13, 2018 · 3 revisions

增加对某种日志系统的支持

许多公司不一定使用列出的日志系统,甚至有自研的一些日志工具。

或者某些公司有特别的机器命名的技巧,需要读取所在主机的hostname作为app_name的前缀等等。

这些日志工具如何快速接入Lofka做到日志统一收集呢?

Java

任何Java日志系统,万变不离其宗,都是要完成如下的任务:

  1. 配置信息的读取,如app_name啦,异步容忍时间参数啦,或者推送地址之类的;
  2. 处理一条日志对象;
  3. 构造函数和析构函数;

在Java中,你直接可以引用:

<dependency>
    <groupId>com.github.tsingjyujing</groupId>
    <artifactId>lofka-utils</artifactId>
    <version>RELEASE</version>
</dependency>

随后参考lofka-utils中的一些实现,例如:

  • com.github.tsingjyujing.lofka.appender.log4j.HttpAppender:同步日志推送器的一个实现
  • com.github.tsingjyujing.lofka.appender.log4j.HttpAsyncAppender:异步日志推送器的一个实现
  • com.github.tsingjyujing.lofka.basic.BaseAsyncProcessor:异步数据处理框架
  • com.github.tsingjyujing.lofka.basic.BaseClosableTimedTask:定时任务处理框架
  • com.github.tsingjyujing.lofka.basic.LoggerJsonAsyncAutoProcessor:依据日志大小自动选择压缩或者不压缩的异步推送器

基于这些实现开发自己的日志推送系统。

Python

参考lofka-python-utils中的代码,直接拷贝后修改以适应自己的业务。

其他语言/已有日志服务器

有些公司存在单独的子系统有自己的日志收集工具,但是不得统一的现象,可以在这些单独的收集器上做文章,将日志转化为LoggerJson格式的JSON文本推送(批量/)到Lofka的Http服务器。 请参考Http接口文档。