云计算发展至今,企业应用的方方面面都已经在云上或者准备上云了。不管是Iaas仍是Paas,应用开发的首选便是上云,由于云平台不只能够节约开发和部署流程中的时间,并且专业的云平台还会极大提高总体服务的稳定性,下降业务运维成本。git
本篇主要介绍下如何利用七牛云大数据日志平台来无缝收集Java应用日志,方便后续的日志分析等工做。本质上,任何客户若是但愿接入七牛的大数据日志平台,均可以利用各个语言的SDK来完成这个工做,或者利用七牛提供的收集工具如logkit 或者 企业级logkit。github
可是本方案强调的就是 业务代码无侵入性。多线程
提供 业务代码无侵入性 接入的方案最基本的缘由就是:框架
因此最好存在一种方案,能够支持 可插拔 的方式来输出日志,这样Java应用代码不须要作更改,也就是达到 业务代码无侵入性 的目标。运维
因为大多数客户的应用都是采用Java来开发的,并且因为Java的生态发展的很是完善,不少客户都使用成熟的日志框架如log4j,slf4j,logback等来进行日志的输出。而这些框架在设计上面为咱们无缝输出日志到不一样的目的地提供了方便的接口。工具
因此,基于这些背景,咱们打算帮助客户实现Java应用日志的 无缝快速上云。性能
不少人或许已经猜出了这个方案的核心技术就是开发支持各个日志框架的自定义Appender。大数据
对,就是这样。咱们目前优先选择支持Java最主要是由于Java语言的覆盖用户普遍,日志框架设计优良,方面扩展自定义的Appender。后续咱们也会根据客户需求继续支持其余的语言。云计算
这个方案除了自定义日志的Appender来将日志输出到云端外,还内部实现了多线程日志上传,日志缓冲(避免频繁推送大小很小的日志行影响业务性能),定时推送等功能,后续还会根据实际状况继续支持其余企业级需求。spa
实际应用起来很是简单,无需修改一行业务代码,直接看图:
从新启动服务后,日志会进行上报,能够在七牛云后台查看数据:
另外,为了让你们在应用到自身业务以前实际体验下,咱们还提供了两个开源软件的案例:
若是您有兴趣了解更多实现细节,欢迎 Star项目:https://github.com/qiniu/qiniu-logging-plugin 或者加入QQ群讨论:675938456 。