如何将在调试模式下运行flume生成的flume日志存储在文件中?

kx5bkwkv  于 2021-06-03  发布在  Flume
关注(0)|答案(2)|浏览(479)

当我使用命令运行flume时:
bin/flume ng agent--conf conf--conf file flume.conf--name agentname-dflume.root.logger=info,控制台
它在控制台上列出所有日志数据。我想将所有这些日志数据(flume的日志数据)存储在一个文件中。我该怎么做?

qjp7pelc

qjp7pelc1#

不要运行-dflume.root.logger=info,console,然后flume将登录。/logs

mi7gmzs6

mi7gmzs62#

您需要定制一个使用log4j2的Flume。您将log4j2配置为使用滚动文件附加器,该附加器每分钟滚动一次(或根据需要的延迟)到假脱机目录。将flume配置为使用 SpoolingDirectorySource 对那个假脱机目录。
不能使用直接的flume附加器(比如log4j2中的内容)来记录flume,因为这样会导致死锁。不能将log4j1与滚动文件追加器一起使用,因为它存在并发缺陷,这意味着它可能会将新消息写入旧文件,而 SpoolingDirectorySource 然后失败了。
我不记得我有没有试过Flume里的log4j appender。这个appender没有很多方法来配置它,我认为如果您尝试与之对话的后续代理关闭,它会给您带来问题。
另一种方法可能是修补log4j1并修复并发缺陷(需要创建一个变量) volatile )
(是的,设置这个有点令人沮丧!)

相关问题