CN101667113A - 一种多线程日志记录方法及装置 - Google Patents

一种多线程日志记录方法及装置 Download PDF

Info

Publication number
CN101667113A
CN101667113A CN200810210577A CN200810210577A CN101667113A CN 101667113 A CN101667113 A CN 101667113A CN 200810210577 A CN200810210577 A CN 200810210577A CN 200810210577 A CN200810210577 A CN 200810210577A CN 101667113 A CN101667113 A CN 101667113A
Authority
CN
China
Prior art keywords
thread
log
separately
log content
correspondence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200810210577A
Other languages
English (en)
Inventor
李磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN200810210577A priority Critical patent/CN101667113A/zh
Publication of CN101667113A publication Critical patent/CN101667113A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

公开了一种多线程日志记录方法及装置,为了解决多个线程的日志文件会出现交错的问题,本发明公开的方法包括:将至少部分线程中各线程所对应的日志内容单独存储;所述至少部分线程中的线程处理完成后,将单独存储的线程对应的日志内容写入日志文件中,并且各线程的对应的日志内容集中记录,正是至少部分线程产生的日志内容单独存储,并且将单独存储的日志内容集中记录在日志文件中,因此被集中记录的日志内容在日志文件中,不会再出现和其他线程的日志记录交错的。

Description

一种多线程日志记录方法及装置
技术领域
本发明属于业务处理逻辑应用系统领域,特别涉及一种多线程日志记录方法及装置。
背景技术
在应用系统中为了方便开发人员查找问题,通常在业务处理逻辑(如一个应用程序)中的关键逻辑步骤处编写日志文件,业务处理逻辑在处理业务的过程中形成多线程,(线程是业务处理逻辑中一个单一的顺序控制流程,在单个业务处理逻辑中同时运行多个线程完成不同的工作,称为多线程)在关键逻辑步骤会将处理结果记录到日志文件中。如此,当业务出现问题时,开发人员可以通过查询日志文件来确定是哪一个步骤出现问题,比较节省时间。但是一直一来有个问题总是困扰着开发人员:一块完整的业务处理逻辑需要记录每一步处理结果,从而形成一个连续的日志文档,目前业务处理逻辑中的日志记录方法通常是业务处理代码调用日志记录模块的日志记录接口,日志记录模块接收到请求后,立即将日志内容写入到日志文件中产生日志记录。但是当日志记录模块接收到多个并发请求时,往往多个请求的处理结果混淆在一起,比如两个线程(T1及T2)同时处理,每个线程对应有5个关键步骤,对应每个线程就会产生5个日志记录(blog1,blog2,blog3......),现有日志文件中各线程的记录可能全部交错在一起(T1blog1,T2blog1,T1blog2,T2blog2,T1log3,T2blog3......),这样非常不利于日后开发人员查找问题。
发明内容
为了解决现有技术中,现有日志文件中各线程的记录可能全部交错在一起的问题,本发明实施例提供了一种多线程日志记录方法,包括:
将至少部分线程中各线程所对应的日志内容单独存储;
所述至少部分线程中的线程处理完成后,将单独存储的线程对应的日志内容写入日志文件中,并且各线程的对应的日志内容集中记录。
同时本发明实施例还提供一种多线程日志记录方法,包括:
将至少部分线程中各线程所对应的日志内容单独存储;
将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中。
同时本发明实施例还提供一种多线程日志记录装置,包括:
存储模块:用于单独存储至少部分线程中各线程所对应的日志内容;
第一写模块:用于所述至少部分线程中的线程处理完成后,将单独存储的线程对应的日志内容写入日志文件中,并且各线程的对应的日志内容集中记录。
同时本发明实施例还提供一种多线程日志记录装置,包括:
存储模块:用于单独存储至少部分线程中各线程所对应的日志内容;
第二写模块:用于将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中。
由上述本发明提供的具体实施方案可以看出,正是至少部分线程中各线程所对应的日志内容单独存储,至少部分线程中的线程处理完成后,将单独存储的线程对应的日志内容写入日志文件中,并且各线程的对应的日志内容集中记录,因此被集中记录的日志内容在日志文件中,不会再出现和其他线程的日志记录交错的。
附图说明
图1为本发明提供的第一实施例方法流程图;
图2为本发明提供的第二实施例方法流程图;
图3为本发明提供的第三实施例装置结构图
图4为本发明提供的第四实施例装置结构图。
具体实施方式
本发明提供的第一实施例是一种多线程日志记录方法,三个线程(T1、T2及T3)同时处理,每个线程对应有3个关键步骤,对应每个线程就会产生3个日志记录(blog1,blog2,blog3),方法流程如图1所示,包括:
步骤102:在内存中的A地址空间对应的存储空间中,单独存储T1线程对应的日志内容。
步骤104:当T1线程处理完成后,将A地址空间对应的存储空间中存储的所有日志内容一起写到20080808.log日志文件中,此时T1线程产生3个日志记录T1blog1,T1blog2,T1blog3,并会连续的记录在20080808.log日志文件中。
在步骤104中,日志记录模块接收到请求后,可以立即将对应T2线程产生的3个日志记录T2blog1,T2blog2,T2blog3,及对应T3线程产生的3个日志记录T3blog1,T3blog2,T3blog3,写入到20080808.log日志文件中,这样对应T2及T3线程产生的6个日志记录会交错(T3blog1,T2blog1,T3blog2,T2blog2,T3blog3,T2blog3),最终20080808.log日志文件中的日志记录为:T3blog1,T2blog1,T3blog2,T2blog2,T3blog3,T2blog3,T1blog1,T1blog2,T1blog3(根据实际情况还可以是T3blog1,T2blog1,T3blog2,T2blog2,T1blog1,T1blog2,T1blog3,T3blog3,T2blog3等,其中T1blog1,T1blog2,T1blog3被集中记录,本方案中所说的集中记录是指在T1blog1,T1blog2,T1blog3之间没有其它的日志记录,但中间可以包括如空行等日志记录时所需的内容)。
或者在步骤102中,在内存中的B地址空间对应的存储空间中,单独存储T2线程对应的日志内容;在内存中的C地址空间对应的存储空间中,单独存储T3线程对应的日志内容。在步骤104中,当T1、T2、T3线程处理完成后,先将A地址空间对应的存储空间中存储的日志内容,再将B地址空间对应的存储空间中存储的日志内容,最后将C地址空间对应的存储空间中存储的日志内容,写到20080808.log日志文件中,此时T1线程产生的日志记录T1blog1,T1blog2,T1blog3,T2线程产生的3个日志记录T2blog1,T2blog2,T2blog3,以及T3线程产生的3个日志记录T31blog1,T3blog2,T3blog3,就会连续的记录在20080808.log日志文件中,最终在20080808.log日志文件中被记录的日志记录为:T1blog1,T1blog2,T1blog3,T2blog1,T2blog2,T2blog3,T31blog1,T3blog2,T3blog3(写的顺序为C、A、B则T3blog1,T3blog2,T3blog3,T1blog1,T1blog2,T1blog3,T2blog1,T2blog2,T2blog3)。
可以看出,通过本实施例的方案,至少其中20080808A.log日志文件中T1线程产生3个日志记录T1blog1,T1blog2,T1blog3会被集中的记录,方便日后开发人员查找T1线程。
本发明提供的第二实施例是一种多线程日志记录方法,三个线程(T1、T2及T3)同时处理,每个线程对应有3个关键步骤,对应每个线程就会产生3个日志记录(blog1,blog2,blog3),方法流程如图2所示,包括:
步骤202:在内存中的A地址空间对应的存储空间中,单独存储T1线程对应的日志内容。
步骤204:将A地址空间对应的存储空间中的日志内容单独写到20080808_A.log日志文件(T1blog1,T1blog2,T1log3)中。即20080808_A.log中只存和T1线程对应的日志记录。
在步骤202中,在内存中的B地址空间对应的存储空间中,存储业务处理逻辑中的T2线程产生的日志内容,在内存中的C地址空间对应的存储空间中,存储业务处理逻辑中的T3线程产生的日志内容。
在步骤204中,将B地址空间对应的存储空间中的日志内容单独写到20080808_B.log日志文件(日志记录T2blog1,T2blog2,T2log3会连续的记录在20080808_B.log日志文件中)中,将C地址空间对应的存储空间中的日志内容单独写到20080808_C.log日志文件(日志记录T3blog1,T3blog2,T3log3会连续的记录在20080808_C.log日志文件中)中。
其中,步骤204可以是线程处理完成后,将地址空间对应的存储空间中的日志内容写到日志文件中,也可以是在线程处理过程中,以时间或地址空间对应的存储空间中存储的日志内容信息的大小为依据,从地址空间对应的存储空间中读取日志内容并写到日志文件中。例如,根据预先设定的每1秒就从A地址空间对应的存储空间中读取T1线程产生的日志内容,并写到20080808_A.log日志文件中,根据B地址空间对应的存储空间(1MB)中存储的日志内容信息大于预先设定的300KB,从B地址空间对应的存储空间中读取T2线程产生的日志内容,并写到20080808_B.log日志文件中。
根据实际情况,还可以是T1线程产生的日志记录按本实施例中的上述方法单独写到20080808_A.log日志文件中。对于T2线程、T3线程,日志记录模块接收到请求后,可以立即将对应T2线程产生的3个日志记录T2blog1,T2blog2,T2blog3,及对应T3线程产生的3个日志记录T3blog1,T3blog2,T3blog3,写入到20080808_BC.log日志文件中,此时T2线程、T3线程产生的日志记录会交错T3blog1,T2blog1,T3blog2,T2blog2,T3blog3,T2blog3。当各线程处理完成后,将20080808_A.log日志文件和20080808_BC.log日志文件合并为20080808.log。
在步骤202之前,业务处理逻辑在处理业务的过程中要处理T1线程,首先要确定是否已经为T1线程分配了日志内容存储空间,如果没有T1线程的日志内容存储空间,那么在内存中创建一个地址空间为A的存储空间,这样,就可以在内存中的A地址空间对应的存储空间中,存储业务处理逻辑中的T1线程产生的日志内容。
本发明提供的第三实施例是一种多线程日志记录装置,其结构如图3所示,包括:
存储模块302:用于单独存储至少部分线程中各线程所对应的日志内容;
第一写模块304:用于所述至少部分线程中的线程处理完成后,将单独存储的线程对应的日志内容写入日志文件中,并且各线程的对应的日志内容集中记录。
进一步,存储模块包括:
多个存储子模块3022:用于单独存储全部多线程中各线程所对应的日志内容;
第一写模块304包括:
第一写子模块3042:用于全部多线程处理完成后,将单独存储的线程对应的日志内容逐个写入日志文件中,并且各线程的对应的日志内容集中记录。
本发明提供的第四实施例是一种多线程日志记录装置,其结构如图4所示,包括:
存储模块302:用于单独存储至少部分线程中各线程所对应的日志内容;
第二写模块306:用于将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中。
进一步,存储模块302包括:
多个存储子模块3022:用于单独存储全部多线程中各线程所对应的日志内容;
第二写模块306包括:
第二写子模块3062:用于各线程处理过程中,当预定条件满足时,将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中。
该装置,还包括:
分配模块308:用于各线程处理完成后,将全部生成的日志文件合并为一个日志文件。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1、一种多线程日志记录方法,其特征在于,包括:
将至少部分线程中各线程所对应的日志内容单独存储;
所述至少部分线程中的线程处理完成后,将单独存储的线程对应的日志内容写入日志文件中,并且各线程的对应的日志内容集中记录。
2、如权利要求1所述的方法,其特征在于,
将至少部分线程中各线程所对应的日志内容单独存储具体为:
将全部多线程中各线程所对应的日志内容单独存储;
所述至少部分线程中的线程处理完成后,将单独存储的线程对应的日志内容写入日志文件中,并且各线程的对应的日志内容集中记录具体为:
全部多线程处理完成后,将单独存储的线程对应的日志内容逐个写入日志文件中,并且各线程的对应的日志内容集中记录。
3、一种多线程日志记录方法,其特征在于,包括:
将至少部分线程中各线程所对应的日志内容单独存储;
将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中。
4、如权利要求3所述的方法,其特征在于,
将至少部分线程中各线程所对应的日志内容单独存储具体为:
将全部多线程中各线程所对应的日志内容单独存储。
5、如权利要求4所述的方法,其特征在于,
将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中具体为:
各线程处理过程中,当预定条件满足时,将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中。
6、如权利要求5所述的方法,其特征在于,各线程处理完成后,将全部生成的日志文件合并为一个日志文件。
7、一种多线程日志记录装置,其特征在于,包括:
存储模块:用于单独存储至少部分线程中各线程所对应的日志内容;
第一写模块:用于所述至少部分线程中的线程处理完成后,将单独存储的线程对应的日志内容写入日志文件中,并且各线程的对应的日志内容集中记录。
8、如权利要求7所述的装置,其特征在于,存储模块包括:
多个存储子模块:用于单独存储全部多线程中各线程所对应的日志内容;
第一写模块包括:
第一写子模块:用于全部多线程处理完成后,将单独存储的线程对应的日志内容逐个写入日志文件中,并且各线程的对应的日志内容集中记录。
9、如权利要求7所述的装置,其特征在于,所述存储模块为内存中的地址空间对应的存储空间。
10、一种多线程日志记录装置,其特征在于,包括:
存储模块:用于单独存储至少部分线程中各线程所对应的日志内容;
第二写模块:用于将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中。
11、如权利要求10所述的装置,其特征在于,存储模块包括:
多个存储子模块:用于单独存储全部多线程中各线程所对应的日志内容。
12、如权利要求11所述的装置,其特征在于,第二写模块包括:
第二写子模块:用于各线程处理过程中,当预定条件满足时,将单独存储的线程所对应的日志内容对应的写到各线程所对应的日志文件中。
13、如权利要求12所述的装置,其特征在于,还包括:
分配模块:用于各线程处理完成后,将全部生成的日志文件合并为一个日志文件。
14、如权利要求10所述的装置,其特征在于,所述存储模块为内存中的地址空间对应的存储空间。
CN200810210577A 2008-09-02 2008-09-02 一种多线程日志记录方法及装置 Pending CN101667113A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810210577A CN101667113A (zh) 2008-09-02 2008-09-02 一种多线程日志记录方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810210577A CN101667113A (zh) 2008-09-02 2008-09-02 一种多线程日志记录方法及装置

Publications (1)

Publication Number Publication Date
CN101667113A true CN101667113A (zh) 2010-03-10

Family

ID=41803740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810210577A Pending CN101667113A (zh) 2008-09-02 2008-09-02 一种多线程日志记录方法及装置

Country Status (1)

Country Link
CN (1) CN101667113A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650956A (zh) * 2011-02-23 2012-08-29 蓝盾信息安全技术股份有限公司 一种程序并发的方法及系统
CN103019824A (zh) * 2012-12-21 2013-04-03 曙光信息产业(北京)有限公司 元数据服务器下日志系统的多进程处理方法和系统
CN103309858A (zh) * 2012-03-06 2013-09-18 深圳市腾讯计算机系统有限公司 一种多线程日志管理的方法及装置
CN103577310A (zh) * 2012-07-20 2014-02-12 腾讯科技(深圳)有限公司 记录软件调试日志的方法以及装置
CN106528372A (zh) * 2016-10-26 2017-03-22 珠海许继芝电网自动化有限公司 一种程序运行监视系统和方法
CN107153695A (zh) * 2017-05-05 2017-09-12 恒生电子股份有限公司 日志记录方法及装置、电子设备、存储介质
CN107577579A (zh) * 2017-09-15 2018-01-12 通鼎互联信息股份有限公司 一种日志记录方法及装置
CN108073500A (zh) * 2016-11-14 2018-05-25 深圳联友科技有限公司 一种日志记录方法以及系统
CN108319543A (zh) * 2018-01-24 2018-07-24 广州江南科友科技股份有限公司 一种计算机日志数据的异步处理方法及其介质、系统
CN110737531A (zh) * 2019-09-27 2020-01-31 山东英信计算机技术有限公司 一种故障诊断方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136718A1 (en) * 2005-12-12 2007-06-14 Microsoft Corporation Using file access patterns in providing an incremental software build

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136718A1 (en) * 2005-12-12 2007-06-14 Microsoft Corporation Using file access patterns in providing an incremental software build

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650956B (zh) * 2011-02-23 2014-08-27 蓝盾信息安全技术股份有限公司 一种程序并发的方法及系统
CN102650956A (zh) * 2011-02-23 2012-08-29 蓝盾信息安全技术股份有限公司 一种程序并发的方法及系统
CN103309858B (zh) * 2012-03-06 2016-04-13 深圳市腾讯计算机系统有限公司 一种多线程日志管理的方法及装置
CN103309858A (zh) * 2012-03-06 2013-09-18 深圳市腾讯计算机系统有限公司 一种多线程日志管理的方法及装置
CN103577310A (zh) * 2012-07-20 2014-02-12 腾讯科技(深圳)有限公司 记录软件调试日志的方法以及装置
CN103019824B (zh) * 2012-12-21 2015-11-25 曙光信息产业(北京)有限公司 元数据服务器下日志系统的多进程处理方法和系统
CN103019824A (zh) * 2012-12-21 2013-04-03 曙光信息产业(北京)有限公司 元数据服务器下日志系统的多进程处理方法和系统
CN106528372A (zh) * 2016-10-26 2017-03-22 珠海许继芝电网自动化有限公司 一种程序运行监视系统和方法
CN106528372B (zh) * 2016-10-26 2020-03-24 珠海许继芝电网自动化有限公司 一种程序运行监视系统和方法
CN108073500A (zh) * 2016-11-14 2018-05-25 深圳联友科技有限公司 一种日志记录方法以及系统
CN107153695A (zh) * 2017-05-05 2017-09-12 恒生电子股份有限公司 日志记录方法及装置、电子设备、存储介质
CN107577579A (zh) * 2017-09-15 2018-01-12 通鼎互联信息股份有限公司 一种日志记录方法及装置
CN107577579B (zh) * 2017-09-15 2020-10-27 通鼎互联信息股份有限公司 一种日志记录方法及装置
CN108319543A (zh) * 2018-01-24 2018-07-24 广州江南科友科技股份有限公司 一种计算机日志数据的异步处理方法及其介质、系统
CN110737531A (zh) * 2019-09-27 2020-01-31 山东英信计算机技术有限公司 一种故障诊断方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN101667113A (zh) 一种多线程日志记录方法及装置
CN107391653B (zh) 一种分布式NewSQL数据库系统及图片数据储存方法
US8868577B2 (en) Generic database manipulator
CN100361091C (zh) 日志信息管理方法及系统
US20130042055A1 (en) Memory system including key-value store
CN103226598B (zh) 访问数据库的方法和装置以及数据库管理系统
CN108319543A (zh) 一种计算机日志数据的异步处理方法及其介质、系统
EP2500831A1 (en) Method and apparatus for accessing database, database application system
CN103455526A (zh) 一种etl数据处理方法、装置及系统
CN110472102A (zh) 一种数据处理方法、装置、设备和存储介质
CN107391544B (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
CN103049533A (zh) 一种快速向数据库加载数据的方法
CN102654863A (zh) 一种实时数据库历史数据组织管理方式
CN103500089A (zh) 一种适应于Mapreduce计算模型的小文件存储系统
CN104750720A (zh) 多线程并发访问环境下高性能数据处理的实现
CN107665219A (zh) 一种日志管理方法及装置
CN111581155B (zh) 数据入数据库的方法、装置和计算机设备
CN104035925A (zh) 数据存储方法、装置和存储系统
CN107704633A (zh) 一种文件迁移的方法和系统
CN101714167A (zh) 一种访问单文件数据库的方法及装置
CN102959548A (zh) 数据存储方法、查找方法及装置
CN102024051B (zh) 分布式内存数据库数据更新方法
CN102768672B (zh) 一种磁盘空间管理方法和装置
US8332595B2 (en) Techniques for improving parallel scan operations
CN103631831A (zh) 一种数据备份方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1141106

Country of ref document: HK

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100310

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1141106

Country of ref document: HK