[发明专利]一种多线程日志输出的方法及装置在审
申请号: | 201711446205.2 | 申请日: | 2017-12-27 |
公开(公告)号: | CN108205476A | 公开(公告)日: | 2018-06-26 |
发明(设计)人: | 李庆龙 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/54 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 日志 输出命令 业务线程 输出 多线程 调用 日志缓存区 计数程序 输出日志 输出线程 计算机可读存储介质 日志缓冲区 日志缓存 日志生成 预先设置 遍历 落盘 申请 查找 隔离 | ||
本申请公开了一种多线程日志输出的方法,包括:调用日志序号计数程序按照各业务线程的日志生成时间的先后顺序,为各日志设置日志序号;将各日志缓存至对应业务线程的日志缓存区;当接收到用户输入的日志输出命令时,利用日志输出线程遍历各日志缓存区查找日志输出命令对应的日志;按照日志序号的顺序输出日志输出命令对应的日志。该方法通过预先设置日志缓冲区,实现了对输出日志的隔离;通过调用日志序号计数程序为各日志设置日志序号,方便查看各业务线程的调用顺序;通过利用日志输出线程对日志进行异步落盘输出,将日志输出对系统的影响降到最低。本申请同时还提供了一种多线程日志输出的装置、设备及计算机可读存储介质,具有上述有益效果。
技术领域
本申请涉及软件开发领域,特别涉及一种多线程日志输出的方法、装置、设备及计算机可读存储介质。
背景技术
在软件开发中,实现多线程的并发运行是开发人员的常用手段,而日志系统是检测软件运行状态的必要手段。多线程的日至系统的主要设计思想是通过一个共享队列,多个输入端能同时非阻塞式的向队列中增加记录信息,输出端能自动及时的把队列中的记录信息输出到控制台或是保存到文件及数据库中。为保证多线程输出日志的一致性,常用的手段是对共享队列的修改进行加锁保护,避免多个线程同时修改队列。
然而,这种加锁保护的方式存在着弊端:无法展示出每个线程的调用顺序,这使得开发人员难以对于软件中每个线程的运行状态进行检测。同时,互斥锁的竞争会导致系统性能的降低。
因此,如何展示出每个线程的调用顺序是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种多线程日志输出的方法、装置、设备及计算机可读存储介质,该方法能够展示出每个线程的调用顺序。
为解决上述技术问题,本申请提供一种多线程日志输出的方法,该方法包括:
调用日志序号计数程序按照各业务线程的日志生成时间的先后顺序,为各所述日志设置日志序号;
将各所述日志缓存至对应业务线程的日志缓存区;
当接收到用户输入的日志输出命令时,利用日志输出线程遍历各所述日志缓存区查找所述日志输出命令对应的日志;
按照所述日志序号的顺序输出所述日志输出命令对应的日志。
可选的,所述日志缓存区的设置过程包括:
预先根据线程本地存储技术为各所述业务线程设置对应的日志缓存区;
将各所述日志缓冲区注册到所述日志输出线程的线程日志缓存队列中。
可选的,在按照所述日志序号的顺序输出所述日志输出命令对应的日志之后,还包括:
当所述日志输出命令对应的日志输出完成时,将各所述日志缓冲区中所述日志输出命令对应的日志删除。
可选的,按照所述日志序号的顺序输出所述日志输出命令对应的日志,包括:
按照所述日志序号的从小到大顺序输出所述日志输出命令对应的日志。
本申请还提供一种多线程日志输出的装置,该装置包括:
调用单元,用于调用日志序号计数程序按照各业务线程的日志生成时间的先后顺序,为各所述日志设置日志序号;
缓存单元,用于将各所述日志缓存至对应业务线程的日志缓存区;
查找单元,用于当接收到用户输入的日志输出命令时,利用日志输出线程遍历各所述日志缓存区查找所述日志输出命令对应的日志;
输出单元,用于按照所述日志序号的顺序输出所述日志输出命令对应的日志。
可选的,所述缓存单元包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711446205.2/2.html,转载请声明来源钻瓜专利网。