一种日志记录方法和装置制造方法及图纸

技术编号:15822718 阅读:40 留言:0更新日期:2017-07-15 04:55
本发明专利技术提供了一种日志记录方法和装置。涉及日志管理领域;解决了系统处理能力低的问题。该方法包括:为日志文件写入任务分配缓存队列组,所述缓存队列组包含至少两个缓存队列;选择所述缓存队列组中的至少一个缓存队列作为当前缓存队列;将所述当前缓存队列中的日志数据写入磁盘中的日志文件,同时所述缓存队列组中除所述当前缓存队列外的缓存队列获取待写入的日志数据。本发明专利技术提供的技术方案适用于高并发日志读写环境,实现了高效并行的日志数据缓存写入。

【技术实现步骤摘要】
一种日志记录方法和装置
本专利技术涉及日志管理领域,尤其涉及一种日志记录方法和装置。
技术介绍
在日常开发中,日志的记录是必不可少的。对同一个文件进行写日志只能单线程的去写,通常会使用简单的lock(锁)来保证当前时刻只有一个线程对同一个日志文件进行写操作,从而保证日志输出的正确性。但是这种方式的缺点也很明显,就是系统在高并发的情况下,效率会非常的差。很容易导致系统性能瓶颈,降低系统处理能力。即便使用多线程的处理方式来避免系统处理能力的下降,但是在多线程写日志记录的时候,由于日志记录需要与磁盘I/O交互,导致单一线程占用锁的时间会加长,从而导致大量线程的阻塞与等待,降低系统的处理能力。
技术实现思路
本专利技术旨在解决上面描述的问题。根据本专利技术的第一方面,一种日志记录方法,包括:为日志文件写入任务分配缓存队列组,所述缓存队列组包含至少两个缓存队列;选择所述缓存队列组中的至少一个缓存队列作为当前缓存队列;将所述当前缓存队列中的日志数据写入磁盘中的日志文件,同时所述缓存队列组中除所述当前缓存队列外的缓存队列获取待写入的日志数据。优选的,将所述当前缓存队列中的日志数据写入磁盘中的日志文件,本文档来自技高网...
一种日志记录方法和装置

【技术保护点】
一种日志记录方法,其特征在于,包括:为日志文件写入任务分配缓存队列组,所述缓存队列组包含至少两个缓存队列;选择所述缓存队列组中的至少一个缓存队列作为当前缓存队列;将所述当前缓存队列中的日志数据写入磁盘中的日志文件,同时所述缓存队列组中除所述当前缓存队列外的缓存队列获取待写入的日志数据。

【技术特征摘要】
1.一种日志记录方法,其特征在于,包括:为日志文件写入任务分配缓存队列组,所述缓存队列组包含至少两个缓存队列;选择所述缓存队列组中的至少一个缓存队列作为当前缓存队列;将所述当前缓存队列中的日志数据写入磁盘中的日志文件,同时所述缓存队列组中除所述当前缓存队列外的缓存队列获取待写入的日志数据。2.根据权利要求1所述的日志记录方法,其特征在于,将所述当前缓存队列中的日志数据写入磁盘中的日志文件,同时所述缓存队列组中除所述当前缓存队列外的缓存队列获取待写入的日志数据包括:创建I/O线程,进行所述当前缓存队列中的日志数据向日志文件中的写入,在写入期间对所述日志文件添加同步锁,在写入完成后解除该同步锁;创建逻辑线程,进行所述缓存队列组中除所述当前缓存队列外的缓存队列对待写入的日志数据的获取。3.根据权利要求1或2所述的日志记录方法,其特征在于,该方法还包括:在所述当前缓存队列中的日志数据全部写入完成后,从所述缓存队列组中重新选择当前缓存队列。4.根据权利要求3所述的日志记录方法,其特征在于,该方法还包括:所述逻辑线程在所述当前缓存队列中的日志数据全部写入完成后,重新选择当前缓存队列完成之前,对待写入的日志数据的获取添加同步锁。5.根据权利要求1或2所述的日志记录方法,其特征在...

【专利技术属性】
技术研发人员:唐永将
申请(专利权)人:海尔优家智能科技北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1