(转)scribe java客户端 例证
(转)scribe java客户端 例子上一篇文章已经安装完scribe,下面我们用java端,通过log4j 把日志写入scribe 日
(转)scribe java客户端 例子
上一篇文章已经安装完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: ????#1 \u5b9a\u4e49\u4e86\u4e24\u4e2a\u8f93\u51fa\u7aeflog4j.rootLogger = DEBUG,CONSOLE,scribelog4j.addivity.org.apache=truelog4j.appender.CONSOLE = org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern = %-4r [%t] %-5p %c - %m%nlog4j.logger.com.vmars= DEBUG, scribelog4j.appender.scribe= com.logtest.AsyncScribeAppenderlog4j.appender.scribe.encoading=utf-8log4j.appender.scribe.hostname=scribelog4j.appender.scribe.scribeHost=192.168.2.221log4j.appender.scribe.scribePort=1463log4j.appender.scribe.hostname=ninjalog4j.appender.scribe.scribeCategory=scribelog4j.appender.scribe.layout=org.apache.log4j.PatternLayoutlog4j.appender.scribe.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
?
?
?? 测试客户端:
?
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?致命错误!!");??????}??}?
1 楼 sankby 2011-09-29 我在suse上装了scribe,使用example1.conf启动,
echo "hello world"|scribe_home/examples/scribe_cat test 这个命令测试,能在/tmp/scribetest/test/test_current 看到日志内容。
如果用你这个测试类运行之后没有报错,但是日志写到哪里去了?test_current 没有看到. 2 楼 sankby 2011-10-08 没有人在用scribe吗?