博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
log4j直接输出日志到flume
阅读量:7131 次
发布时间:2019-06-28

本文共 1543 字,大约阅读时间需要 5 分钟。

log4j.properties配置:

log4j.rootLogger=INFO
log4j.category.com.besttone=INFO,flume
log4j.appender.flume = org.apache.flume.clients.log4jappender.Log4jAppender
log4j.appender.flume.Hostname = localhost
log4j.appender.flume.Port = 44444

log4j.appender.flume.UnsafeMode = true

 

需要将/opt/cloudera/parcels/CDH-5.0.0-1.cdh5.0.0.p0.47/lib/flume-ng/tools/flume-ng-log4jappender-1.4.0-cdh5.0.0-jar-with-dependencies.jar添加到classpath下。

然后可以写一个简单的测试类来测试一下:

 

[java] 
 
  1. package com.besttone.flume;  
  2.   
  3. import java.util.Date;  
  4.   
  5. import org.apache.commons.logging.Log;  
  6. import org.apache.commons.logging.LogFactory;  
  7.   
  8. public class WriteLog {  
  9.     protected static final Log logger = LogFactory.getLog(WriteLog.class);  
  10.   
  11.     /** 
  12.      * @param args 
  13.      * @throws InterruptedException  
  14.      */  
  15.     public static void main(String[] args) throws InterruptedException {  
  16.         // TODO Auto-generated method stub  
  17.         while (true) {  
  18.         //每隔两秒log输出一下当前系统时间戳  
  19.             logger.info(new Date().getTime());  
  20.             Thread.sleep(2000);  
  21.         }  
  22.     }  
  23. }  

然后写一个run.sh脚本运行这个类:

[plain] 
 
  1. #!/bin/bash  
  2. jarlist=`ls ./lib/*.jar`  
  3. CLASSPATH='./bin/'  
  4. for jar in ${jarlist}  
  5. do  
  6.    CLASSPATH=${CLASSPATH}:${jar}  
  7. done  
  8. echo ${CLASSPATH}  
  9.   
  10. java -classpath "$CLASSPATH" com.besttone.flume.WriteLog &  

执行run.sh,将sink设置为logger,去flume的日志文件里去看,可以看到log4j的日志输出已经传输到了flume中:
2014-07-16 14:23:54,193 INFO org.apache.flume.sink.LoggerSink: Event: { headers:{flume.client.log4j.log.level=20000, flume.client.log4j.message.encoding=UTF8, flume.client.log4j.logger.name=com.besttone.flume.WriteLog, flume.client.log4j.timestamp=1405491834189} body: 31 34 30 35 34 39 31 38 33 34 31 38 39          1405491834189 }

转载地址:http://igurl.baihongyu.com/

你可能感兴趣的文章
学习Bash 参数和参数扩展
查看>>
gulp+sass+react前端开发,环境搭建
查看>>
PHP笔试题总结1
查看>>
https请求过程
查看>>
group by
查看>>
回首十年——写给还在各等级教育中盲目学习的人
查看>>
mybatis动态sql之foreach
查看>>
pymysql 模块
查看>>
topcoder srm 702 div1 -3
查看>>
如何实现游戏服务器分布式并且能够负载均衡以及重启措施
查看>>
投资回收期、投资回收率
查看>>
ADB命令
查看>>
LeetCode 234. 回文链表
查看>>
Live555 实战之框架简单介绍
查看>>
大数据基础2
查看>>
PHP编码规范(二)
查看>>
uva-10700-贪心
查看>>
配置Github秘钥
查看>>
SVN修改已经提交过记录的日志和作者
查看>>
封装scroll()
查看>>