`
yjl49
  • 浏览: 109810 次
社区版块
存档分类
最新评论

日志系统引起的争论

阅读更多

 

年前了事情还是有一大堆。最近我一直在思考“写代码”这事,如何摆脱小作坊、小玩具式的开发。如何能少走弯路、避免做无用功。

老板给提的建议是做事情要注重以下几点:

预见性:提前对项目作出预估、提前预见困难和陷阱。

计划性:计划和安排好达到目标的每一步。

执行力:任何事情都要有deadline,在规定的时间里完成规定的任务,并能对结果进行验证。

 

日志系统小到System.out.println,大到要使用hadoop等分布式文件系统存储都是项目中必不可少的一个模块。一个项目的日志系统要做到什么样的程度与项目本身的需求密切相关。如果是只想在编码期间看下程序运行是否正常,逻辑是否OK,直接用printl就能解决;稍微大些使用log4j,可以分级别记录日志。

现在做的一个项目中需要收集客户端的一些操作日志并进行分析展示,所有的日志都通过http的方式上传到服务器。在如何处理和存储上不同的人有了不同的看法。

一些人建议按用户、日期生成文本文件存在指定目录,另一些人建议在数据库中使用大字段存储。这两种方法都是处理日志的可行方法,但各有优缺点:

按用户、日期生成文本文件一方面不利于查看、不利于统计、另一方面也难以管理。

直接存到统计数据库则效率低下、浪费过多的表空间、在不进行优化处理的情况下数据查询也比较困难(尤其针对大字段内容的检索)、在用户量大的情况下严重影响数据库性能。

 

进一步考虑,系统规模增大的情况下日志的处理会面临以下问题:

1.初始的日志存储位置分散:多台应用服务器产生的日志位置分散

2.需要记录的日志格式不一致:针对应用功能的不同,日志信息的侧重点不同格式多样

3.需要统计的信息点不同:同一批日志数据,统计时的关注点也可以不同

4.存储量大

5.写频繁对服务器压力大

6.日志合并面临的排序、去重

7.日志备份

针对以上几点,最好的处理方法就是建立独立的日志系统。

以淘宝的日志系统为例:

淘宝后台系统有大量的应用服务器,每天处理海量的应用,同样会产生海量的日志信息。所以其内部开发了专门的队列服务器TT,并在所有的应用服务器上布署client端负责收集日志发送到TT中。后台日志的存储备份则使用hadoop集群实现,数据的统计则使用hive进行。

所以整体的架构应该是这样:

 

分享到:
评论
1 楼 gtandsn 2012-03-16  
  

相关推荐

    不错的ext日志管理系统

    ext日志管理系统ext日志管理系统ext日志管理系统ext日志管理系统ext日志管理系统ext日志管理系统

    C#.net 办公日志管理系统办公日志管理系统办公日志管理系统

    C#.net 办公日志管理系统办公日志管理系统办公日志管理系统C#.net 办公日志管理系统办公日志管理系统办公日志管理系统C#.net 办公日志管理系统办公日志管理系统办公日志管理系统C#.net 办公日志管理系统办公日志管理...

    SAP系统业务-查询系统日志信息.docx

    回车 SAP系统业务-查询系统日志信息全文共5页,当前为第1页。 SAP系统业务-查询系统日志信息全文共5页,当前为第1页。 2.ST03N 这是另外一种方法,可以看到更多一些的用户操作信息 双击用户 可以看到事务代码。 ...

    系统日志分析系统日志系统日志

    用来分析系统日志系统日志系统日志系统日志系统日志

    基于Hadoop网站流量日志数据分析系统.zip

    基于Hadoop网站流量日志数据分析系统 1、典型的离线流数据分析系统 2、技术分析 - Hadoop - nginx - flume - hive - mysql - springboot + mybatisplus+vcharts nginx + lua 日志文件埋点的 基于Hadoop网站流量...

    unix系统日志系统记录的日志

    最好每天,至少每周一次,取决于你的审查政策。/var/adm/utmp:系统记录的日志,跟踪仍然登录的用户,但有时shell被停止或未清除干净,会有问题 理解其他日志文件的内容有助于安全管理员认清系统中正在发生的事情。

    系统日志诊断工具

    系统日志诊断工具系统日志诊断工具系统日志诊断工具系统日志诊断工具系统日志诊断工具系统日志诊断工具

    Qt 打印日志系统,实现打印日志保存,窗口显示日志,网络传输日志

    一套成熟的系统往往都有相应的日志系统,以便调试查看 Qt的打印信息默认处理程序将消息打印到X11下的标准输出或Windows下的调试器,其实我们可以自己处理相关打印信息,可以选择保存下来、或者界面显示,网络传输...

    企业员工工作日志系统源码

    企业员工工作日志系统源码 很简单的一个功能,就是企业员工提交工作记录的 系统用户有三种角色 一、管理员,最大权限,可以管理任何栏目 二、BOSS,可以添加、修改、删除自己的日志外,还可以查看他人的日志 ...

    日志系统实现及参考demo

    C语言实现日志系统; 用户使用指南: 1. 本数据包中存在三个文件夹,分别是 self-syslog syslogPrintf 和 user-demo, 其中 self-syslog 文件夹中包含系统日志源文件,读取配置文件函数,以及用户自定义写日志函数; ...

    struts aop日志系统

    struts aop日志系统,struts aop日志系统

    基于SSM的日志系统

    基于SSM的日志系统

    日志系统.pdm

    日志系统(高级版本) 日志系统(高级版本).pdm 日志系统(高级版本).pdm 日志系统(高级版本).pdm

    员工工作日志管理系统1.0源码.rar

    员工工作日志管理系统1.0源码.rar

    C++实现日志系统

    C++实现的日志系统,支持变长参数,支持文件大小控制。

    基于Java web的工作日志管理系统文档 .doc

    寄予工作日志管理系统是一个人与人之间进行交互的虚拟平台。以前大小企业及公司都是使用‘工作日志卡’或者是纸质通知的形式,这样安全性不高,而且不易维护及产看。随着您需要的各种信息量的大规模化,越来越多的...

    基于MongoDB的日志系统Mongodb-Log.zip

    mongodb-log 是一个基于MongoDB的Python日志系统。 MongoDB 的 Capped Collection是一个天生的日志系统,MongoDB自己的oplog就是用它来存储的,Capped Collection的特点是可以指定Collection的大小,当记录总大小...

    操作系统日志读取,查看

    操作系统日志读取,查看 操作系统日志读取,查看 操作系统日志读取,查看

    个人日志系统的开发博客等

    日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#日志系统c#

    简单易用的日志系统

    自己利用tomcat+slf4j搭建的简单日志系统,方便同事之间查看日志。

Global site tag (gtag.js) - Google Analytics