Flume:如何使用spoolDir跟踪指定的子文件夹?

时间:2018-11-11 08:54:42

标签: flume flume-ng

我们有一个系统将日志文件上传到按日期命名的文件夹中。看起来像:

/logs
   /20181030
   /20181031
   /20181101
   /20181102
   /...

假设我想跟踪使用spoolDir在11月期间生成的日志文件,我该怎么做?

#this won't work
a1.sources.r1.spoolDir = /logs/201811??

#this seems only works with files. Is it possible to filter folders here?
a1.sources.r1.includePattern = ^.*\.txt$

1 个答案:

答案 0 :(得分:0)

根据水槽源代码,在递归文件夹树(注册文件夹跟踪器)时会跳过与 ignorePattern 匹配的文件夹。因此,您可以忽略不符合条件的文件夹。 ^(?!201811..).*$将排除不是2018年11月的文件夹的所有文件夹。将不会跟踪其他文件夹。 但是这种模式也适用于文件名。因此,任何名称与^201811..$不匹配的文件也将被忽略。您可以将^.*\.txt$模式(用于包含模式的模式)添加到正则表达式,以使水槽接受您的输入文件。

a1.sources.r1.ignorePattern = ^(?!(201810..)|(.*\\.txt)).*$

将为您解决问题。