云计算实战 (海量日志管理)hadoop + scribe -- log4j 客户端写入scribe
?
上一篇文章已经安装完scribe,下面我们用java端,通过log4j 把日志写入scribe 日志系统。
?
?
一、生成scribe客户端
生成 java客户端api
?? A. 修改配置文件scribe.thrift
????? cd /usr/local/scribeInstall/scribe/if
????? vi scribe.thrift
????? 修改scribe.thrift文件: 把 include "fb303/if/fb303.thrift" 改成
????? include "[thrift解压路径]/thrift-0.5.0/contrib/fb303/if/fb303.thrift"
?? B. 生成 java客户端api?????
????? 运行命令 thrift --gen java scribe.thrift
????? 运行后会生成一个‘gen-java’的文件夹.里面会有3个java类,封装了所有java客户端发送log所需要的api。
?
?
生成客户端代码所需要的jar包???A. 如果之前没设置ANT_HOME 和 PATH 请先设置这两个环境变量????? export ANT_HOME=/usr/local/apache-ant-1.8.0
????? export PATH=$PATH:$ANT_HOME/bin
?? B. 生成libthrift.jar
????? cd /usr/local/scribeInstall/thrift-0.2.0/lib/java
????? ant?
????? (如果没有错误在本文夹夹下会生成libthrift.jar)
?? C. 生成libfb303.jar
?
?cd /usr/local/scribeInstall/thrift-0.2.0/contrib/fb303/java
ant
ant 执行成功后 libfb303.jar 会出现在/usr/local/scribeInstall/contrib/fb303/java/build/lib下
?
?
二、创建项目,运行测试?
创建项目?? ? A.在eclipse 创建普通java项目?? ? B.在项目中导入以下jar?????
?? ?C.在项目中添加gen-java 文件夹里的三个java类。?? 编写项目?? ?编写log4j 的scribe appender??? ?AsyncScribeAppender.java: ????
package com.logtest;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class LogTest {private static Log log = LogFactory.getLog(LogTest.class);public static void main(String[] args) {log.error("this is a charactor test ");log.debug("这是中文测试");log.fatal("fatal error 致命错误!!");}}?
?
所有资源均在resources.rar 中。
1 楼 uuuvvv 2010-11-03 请教lz,这样做到底有哪些好处呢? 2 楼 houzhaowei 2010-11-03 uuuvvv 写道请教lz,这样做到底有哪些好处呢?scribe 是分布式日志系统 能更好的处理海量日志. facebook 就是用的scribe. 3 楼 remexl 2011-04-20 请问楼主,scribe收集的日志是放在哪个目录下面的? 4 楼 vicegoytd 2012-03-02 是啊,这个scribe收集日志存放在哪里,在/tmp/scribetext 里没有啊 5 楼 houzhaowei 2012-03-05 vicegoytd 写道是啊,这个scribe收集日志存放在哪里,在/tmp/scribetext 里没有啊
这目录在scribe里配