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

日志系统引起的争论

阅读更多

 

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

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

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

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

执行力:任何事情都要有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  
  

相关推荐

    操作日志系统设计.zip

    操作日志系统是一种重要的软件组件,它记录了用户或系统执行的各种操作,为故障排查、安全审计、性能分析和业务追踪提供了宝贵的数据。本资料"操作日志系统设计"将探讨设计这样一个系统的各个方面,帮助开发者理解和...

    不错的ext日志管理系统

    EXT日志管理系统是一款高效、强大的日志管理工具,专为处理和分析大量系统、应用程序或网络设备的日志数据而设计。EXT在日志管理领域的应用广泛,尤其对于开发者和运维人员来说,它提供了便捷的方式来监控、排查问题...

    基于SSM的日志系统

    这个日志系统是基于SSM框架实现的,它旨在记录和管理应用程序运行过程中的各种信息,帮助开发者追踪错误、监控性能、分析用户行为等。 1. **Spring框架**:Spring是核心的依赖注入(DI)和面向切面编程(AOP)框架...

    网御安全管理系统-日志审计系统-v3.0.0.01002-设备配置手册.pdf

    网御安全管理系统-日志审计系统-v3.0.0.01002-设备配置手册.pdf 本手册是网御安全管理系统-日志审计系统的用户手册,旨在为用户提供详细的配置指南和操作说明。本手册涵盖了日志审计系统的设备配置、事件来源、日志...

    C++实现的日志系统·

    在IT行业中,日志系统是不可或缺的一部分,它用于记录应用程序运行过程中的事件、错误和调试信息,便于开发者追踪问题和优化程序。C++作为一种强大的系统级编程语言,也有许多实现日志系统的方案。针对你提供的资源...

    日志管理系统

    日志管理系统是IT行业中至关重要的一个组成部分,它主要用于收集、存储、分析以及监控应用程序和系统产生的日志数据。日志信息记录了系统运行时的详细情况,包括错误、警告、调试信息等,对于故障排查、性能优化、...

    asp日志系统

    在ASP日志系统中,我们关注的是如何利用ASP技术来构建一个能够记录、管理和分析系统活动的日志系统,这对于监控网站性能、追踪错误、安全审计以及故障排查等方面具有重要意义。 在基于ASP开发的日志系统中,主要...

    linux c 多线程安全日志系统

    在Linux C环境中,多线程安全日志系统是一种常见的需求,尤其在服务器应用程序中,它能够确保在高并发环境下正确地记录系统事件。本项目利用线程锁、信号量和文件操作技术,构建了一个安全的日志系统,同时考虑了...

    操作系统日志读取,查看

    操作系统日志是记录系统活动和事件的重要工具,它包含了系统运行过程中的各种信息,如错误、警告、信息性消息等。这些日志对于诊断问题、维护系统安全和追踪潜在故障至关重要。本文将深入探讨如何在不同的操作系统中...

    windows系统日志自动备份脚本

    在Windows操作系统中,系统日志记录了系统的各种事件,包括安全事件、系统事件、应用程序事件以及网络连接等信息。这些日志数据对于诊断系统问题、排查故障和审计追踪至关重要。因此,定期对系统日志进行备份是维护...

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

    《员工工作日志管理系统1.0源码》是一款专为企业管理设计的应用,旨在高效地跟踪和管理员工的工作日志,从而提升工作效率,优化工作流程。该系统的核心功能包括员工日志记录、工作状态追踪、任务分配及反馈等,为...

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

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

    Delphi应用程序日志写入系统日志

    本主题聚焦于使用Delphi编程语言将应用程序日志写入系统日志,这对于系统管理和故障排查尤其重要。下面我们将深入探讨这个话题。 首先,Delphi是一种基于Object Pascal的集成开发环境(IDE),广泛用于创建Windows...

    日志管理系统需求分析.pdf

    根据提供的文件信息,文档的标题是“日志管理系统需求分析.pdf”,这意味着文档的焦点是分析和阐述一个日志管理系统在实施前所需满足的功能性及非功能性需求。描述部分重复了标题内容,未提供额外信息。标签“技术及...

    网络日志系统在嵌入式文件上的实现

    日志文件系统主要分为两种类型:Log-Structured日志文件系统(日志结构文件系统)和Meta-Data日志文件系统(元数据日志文件系统)。下面分别对这两种类型的日志文件系统进行介绍。 ##### 2.2 Log-Structured日志...

    一个简单又高效的日志系统.rar

    在IT行业中,日志系统扮演着至关重要的角色,它能够帮助开发者追踪应用程序的运行状态,定位和解决问题。"一个简单又高效的日志系统" 提供的解决方案可能正是针对这一需求而设计的。日志系统的核心目标是记录程序...

    SANGFOR_LAS深信服日志审计系统_v3.0_快速安装手册.pdf

    SANGFOR_LAS深信服日志审计系统_v3.0快速安装手册.pdf SANGFOR_LAS深信服日志审计系统是一款功能强大且灵活的日志审计解决方案,旨在帮助企业实现日志收集、存储、分析和报表生成等功能。该系统可以实时监控和记录...

    SSH日志管理系统

    SSH日志管理系统是一种基于Spring、Struts和Hibernate(SSH)三大主流Java Web开发框架构建的日志管理解决方案。SSH框架组合提供了强大的数据持久层、业务逻辑层和表现层支持,是许多企业级应用开发的首选技术栈。在...

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

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

Global site tag (gtag.js) - Google Analytics