当我使用命令运行flume时:bin/flume ng agent--conf conf--conf file flume.conf--name agentname-dflume.root.logger=info,控制台它在控制台上列出所有日志数据。我想将所有这些日志数据(flume的日志数据)存储在一个文件中。我该怎么做?
qjp7pelc1#
不要运行-dflume.root.logger=info,console,然后flume将登录。/logs
mi7gmzs62#
您需要定制一个使用log4j2的Flume。您将log4j2配置为使用滚动文件附加器,该附加器每分钟滚动一次(或根据需要的延迟)到假脱机目录。将flume配置为使用 SpoolingDirectorySource 对那个假脱机目录。不能使用直接的flume附加器(比如log4j2中的内容)来记录flume,因为这样会导致死锁。不能将log4j1与滚动文件追加器一起使用,因为它存在并发缺陷,这意味着它可能会将新消息写入旧文件,而 SpoolingDirectorySource 然后失败了。我不记得我有没有试过Flume里的log4j appender。这个appender没有很多方法来配置它,我认为如果您尝试与之对话的后续代理关闭,它会给您带来问题。另一种方法可能是修补log4j1并修复并发缺陷(需要创建一个变量) volatile )(是的,设置这个有点令人沮丧!)
SpoolingDirectorySource
volatile
2条答案
按热度按时间qjp7pelc1#
不要运行-dflume.root.logger=info,console,然后flume将登录。/logs
mi7gmzs62#
您需要定制一个使用log4j2的Flume。您将log4j2配置为使用滚动文件附加器,该附加器每分钟滚动一次(或根据需要的延迟)到假脱机目录。将flume配置为使用
SpoolingDirectorySource
对那个假脱机目录。不能使用直接的flume附加器(比如log4j2中的内容)来记录flume,因为这样会导致死锁。不能将log4j1与滚动文件追加器一起使用,因为它存在并发缺陷,这意味着它可能会将新消息写入旧文件,而
SpoolingDirectorySource
然后失败了。我不记得我有没有试过Flume里的log4j appender。这个appender没有很多方法来配置它,我认为如果您尝试与之对话的后续代理关闭,它会给您带来问题。
另一种方法可能是修补log4j1并修复并发缺陷(需要创建一个变量)
volatile
)(是的,设置这个有点令人沮丧!)