-
Notifications
You must be signed in to change notification settings - Fork 19
增加对某种日志类型的支持
袁逸凡 edited this page Aug 13, 2018
·
3 revisions
许多公司不一定使用列出的日志系统,甚至有自研的一些日志工具。
或者某些公司有特别的机器命名的技巧,需要读取所在主机的hostname作为app_name的前缀等等。
这些日志工具如何快速接入Lofka做到日志统一收集呢?
任何Java日志系统,万变不离其宗,都是要完成如下的任务:
- 配置信息的读取,如app_name啦,异步容忍时间参数啦,或者推送地址之类的;
- 处理一条日志对象;
- 构造函数和析构函数;
在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
:依据日志大小自动选择压缩或者不压缩的异步推送器
基于这些实现开发自己的日志推送系统。
参考lofka-python-utils
中的代码,直接拷贝后修改以适应自己的业务。
有些公司存在单独的子系统有自己的日志收集工具,但是不得统一的现象,可以在这些单独的收集器上做文章,将日志转化为LoggerJson格式的JSON文本推送(批量/)到Lofka的Http服务器。 请参考Http接口文档。