[发明专利]一种多线程日志管理的方法及装置有效
申请号: | 201210057044.9 | 申请日: | 2012-03-06 |
公开(公告)号: | CN103309858A | 公开(公告)日: | 2013-09-18 |
发明(设计)人: | 黄明生 | 申请(专利权)人: | 深圳市腾讯计算机系统有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 510075 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 日志 管理 方法 装置 | ||
技术领域
本发明涉及业务处理逻辑应用技术领域,尤其涉及一种多线程日志管理的方法及装置。
背景技术
在业务处理过程中,通常多个线程同时处理,并在关键逻辑步骤将处理结果记录到日志文件中。线程为业务处理逻辑中按照一个单一的顺序控制处理流程,在单个业务处理逻辑中同时运行多个线程完成不同的工作称为多线程。日志指系统所指定对象的某些操作和其操作结果按时间有序的集合。日志对于系统监控、查询、报表和安全审计非常重要,因此,系统除了应满足基本日志管理与使用的需求外,必须进一步保证线程安全,且没有严重的性能损失。现有技术主要是通过基于竞争/占有模式的锁机制实现。
采用现有技术,在多线程环境下,为了避免日志记录错乱,可以根据配置建立或者打开日志文件时,建立全局的互斥锁。每个对象对应一个互斥锁,互斥锁用于使在任一时刻只能有一个线程访问该对象,以便保证共享数据操作的完整性。当某个线程需要写入日志时,需等待当前正在写入的线程完成并释放全局互斥锁后,获得日志文件的写入权才能完成一条日志的写入。
目前,存在对于该实现机制的改进方案,例如系统为各个线程初始化了一个单写多读的缓冲区,这个缓冲区可以是系统内存或临时建立的文件。然后各个线程需要写日志时可以先立即写入到各自的缓冲区中,不用竞争全局锁,减少了等待时间,再由专门的日志收集线程定时或轮询地将其它线程缓冲区的临时日志重新转移到系统总日志中。但实现时各个写入线程的缓存区一般需要加一把读锁,或者需要用线程条件变量维持与日志收集线程的同步,以避免收集日志时的缓冲区的同时写入,否则必须等其它线程空闲或系统停止后再收集。
然而,当采用现有技术进行日志文件操作时,会引起系统等待,导致系统实时性差,性能下降。
发明内容
本发明的实施例提供一种多线程日志管理的方法及装置,可以避免系统等待,使系统进行实时处理,提高系统性能。
为达到上述目的,本发明的实施例采用如下技术方案:
一种多线程日志管理的方法,包括:
获取线程写入的日志的系统文件描述符FD、写入级别和写入内容;
当所述写入级别大于预设级别时,将所述写入内容写入所述FD对应的日志文件中。
一种多线程日志管理的装置,包括:
获取单元,用于获取线程写入的日志的系统文件描述符FD、写入级别和写入内容;
日志文件写入单元,用于当所述写入级别大于预设级别时,将所述写入内容写入所述FD对应的日志文件中。
本发明实施例提供一种多线程日志管理的方法及装置,通过获取线程写入的日志的系统文件描述符FD、写入级别和写入内容,当所述写入级别大于预设级别时,将所述写入内容写入所述FD对应的日志文件中。与现有技术中进行日志文件操作时,会引起系统等待,导致系统实时性差,性能下降相比,本发明实施例提供的方案采用FD关联了日志文件,可以在多线程下无锁的日志文件写入、切换,可以避免系统等待,使系统进行实时处理,提高系统性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种多线程日志管理的方法的流程图;
图2为本发明实施例1提供的一种多线程日志管理的装置的框图;
图3为本发明实施例2提供的一种多线程日志管理与使用机制总体结构示意图;
图4为本发明实施例2提供的一种多线程日志管理的方法的流程图;
图5为本发明实施例2提供的创建日志文件的示意图;
图6为本发明实施例2提供的日志文件的写入的示意图;
图7为本发明实施例2提供的日志文件的切换示意图;
图8为本发明实施例2提供的一种多线程日志管理的装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种多线程日志管理的方法,如图1所示,该方法包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市腾讯计算机系统有限公司,未经深圳市腾讯计算机系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210057044.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:通脉利心胶囊
- 下一篇:一种基于图像分析的废杂铜熔炼炉的控制方法及控制系统