论文部分内容阅读
随着科技不断发展,生活和工作的信息化程度不断加深,在人类的生活工作中到处都有计算机和互联网的身影。作为沟通计算机和人类社会的桥梁,软件的重要性越发突出。在近几年内,软件行业发展迅速,涉及领域十分广泛,其完成的功能愈来愈多,直接导致软件的开发工作越来越复杂。日志可以辅助开发人员进行应用程序的开发工作,帮助开发人员尽早找到软件在开发和运行中遇到的问题,同时还可以用来记录程序实时运行的信息,为开发人员可用户提供更有效的结果。因此在程序开发工作中,日志记录和分析是一项十分普遍的需求。针对日志的记录和分析需求,本文拟实现一套日志系统,该系统能够在高负载环境下使用,为程序提供高效的日志收集功能,且尽可能不造成原程序的效率损失;系统与用户程序耦合程度低,将日志记录和用户程序的业务逻辑分离,用户程序只需要调用相关接口即可实现日志读写,而无须知道读写功能如何实现;系统可以同时为多进程服务,支持程序自定义日志类型,赋予了用户程序极大的自由度;最后系统适用性广泛,能在多种环境包括内核态下运行。经过调研发现,C/C++语言开发的程序运行效率最高,且应用广泛,能够在内核态环境下运行,因此采用C/C++语言编写本系统,并在Linux下运行。为了实现日志在多进程间的传递,本文在现有的进程间通信方法的基础上提出了一套新的进程间通信框架,作为本日志系统日志数据传输的基础。日志系统分为两个模块,一个是日志系统管理模块,独立运行,为其他进程提供日至读写服务,另一个是日志系统用户接口模块,运行在用户程序进程空间,为用户程序提供接口,并与管理系统通信,实现日志的传输。