Flume ng 自定義sink實現和屬性注入

2021-08-10 12:08:36 字數 903 閱讀 2068

最近需要利用flume來做收集遠端日誌,所以學習一些flume最基本的用法。這裡僅作記錄。

自定義sink**:

public

class

localfilelogsink

extends

abstractsink

implements

configurable

@override

public

status

process

()throws

eventdeliveryexception

實現configurable介面,即可在初始化時,通過configure方法從context中獲取配置的引數的值。這裡,我們是想從flume的配置檔案中獲取rootpath的值,也就是日誌儲存的根路徑。在flume-conf.properties中配置如下:

agent.sinks = loggersink

agent.sinks.loggersink.rootpath = ./logs

loggersink是自定義sink的名稱,我們取值時的key,只需要loggersink後面的部分即可,即這裡的rootpath。

實際業務邏輯的執行,是通過繼承複寫abstractsink中的process方法實現。從基類的getchannel方法中獲取通道,從中取出event處理即可。

channelch=

getchannel

();transaction

txn=ch.

gettransaction

();txn

.begin

();try

Flume ng 自定義sink實現和屬性注入

1.如何實現flume端自定乙個sink,來按照我們的規則來儲存日誌?2.想從flume的配置檔案中獲取rootpath的值,該如何配置?最近需要利用flume來做收集遠端日誌,所以學習一些flume最基本的用法。這裡僅作記錄。自定義sink public class localfilelogsin...

Flume ng 自定義sink實現和屬性注入

1.如何實現flume端自定乙個sink,來按照我們的規則來儲存日誌?2.想從flume的配置檔案中獲取rootpath的值,該如何配置?最近需要利用flume來做收集遠端日誌,所以學習一些flume最基本的用法。這裡僅作記錄。自定義sink public class localfilelogsin...

Qt自定義sink風格按鈕

為了滿足工作中控制項多樣性的要求,一些控制項的風格需要通過重寫畫家事件的方式進行自定義 實現sink風格按鈕的效果圖如下 純 實現思路 產生按鈕下沉的效果是利用了視覺誤差原理,通過更改背景顏色以及圖示的位置,呈現出按鈕動態改變的效果。按鈕未按下狀態繪製 void sinkbutton drawuns...