CN108073500A - 一种日志记录方法以及系统 - Google Patents
一种日志记录方法以及系统 Download PDFInfo
- Publication number
- CN108073500A CN108073500A CN201611000230.3A CN201611000230A CN108073500A CN 108073500 A CN108073500 A CN 108073500A CN 201611000230 A CN201611000230 A CN 201611000230A CN 108073500 A CN108073500 A CN 108073500A
- Authority
- CN
- China
- Prior art keywords
- log
- thread
- journal file
- processing thread
- current
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种日志记录方法以及系统,方法包括:S1、主线程启动后创建日志处理线程;S2、创建至少一个应用线程;S3、应用线程根据当前日志长度生成日志消息包并发送给日志处理线程;S4、日志处理线程解析得到的日志消息包并将日志记录到日志文件;本发明使用专门的日志线程处理日志,使日志发起方不再直接操作日志文件线程,不占用应用线程多余时间,使应用线程把时间都用在业务处理上,提高日志发起方的其它业务处理性能;且根据当前日志长度生成日志消息包,不会造成存储空间的浪费或者存储空间不够导致日志记录不全;进一步的,本发明定时创建以当前时间信息命名的日志文件,避免单个日志文件过大,且方便查询和传输。
Description
技术领域
本发明涉及信息维护领域,尤其涉及一种日志记录方法以及系统。
背景技术
日志是软件系统的一个重要功能,它时刻记录系统的允许情况,当系统出现异常时,开发调试人员可以从日志中定位引起问题的原因,可以在很大程度上较少问题解决时间,有效的提高问题解决效率。
现有的记录日志的处理方式主要有两种。第一种如图1所示,当前软件系统记录日志应用线程写日志前先打开日志文件,日志文件打开成功后将日志记录到文件中,日志记录完毕后关闭日志文件;第二种是建立专门的日志处理线程,将日志记录到固定的缓冲区,然后发给日志处理线程记录日志。
以上两种处理方式中,前者会因为频繁操作文件和直接写文件导致处理性能下降,后者会因为每个日志包都分配固定大小存储空间造成内存浪费或日志过长时打印不全。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种日志记录方法以及系统。
本发明解决其技术问题所采用的技术方案是:构造一种日志记录方法,包括:
S1、主线程启动后创建日志处理线程;
S2、创建至少一个应用线程;
S3、应用线程根据当前日志长度生成日志消息包并发送给日志处理线程;
S4、日志处理线程解析得到的日志消息包并将日志记录到日志文件。
在本发明所述的日志记录方法中,所述步骤S3包括:应用线程根据当前日志长度动态申请内存存储空间,将当前日志写入申请到的内存存储空间中以生成所述日志消息包,并将日志消息包发送给日志处理线程,再返回处理其他业务。
在本发明所述的日志记录方法中,所述步骤S1还包括:日志处理线程根据当前时间信息定时创建以当前时间信息命名的日志文件;
所述步骤S4中所述的将日志记录到日志文件包括:将日志记录到当前时间信息所对应的日志文件。
在本发明所述的日志记录方法中,所述步骤S1还包括:间隔一定时间创建一个日志文件夹,并在该日志文件夹内定时创建多个所述日志文件。
在本发明所述的日志记录方法中,定时创建的日志文件位于硬盘中。
本发明还公开了一种日志记录系统,包括:
日志处理线程创建模块,用于在主线程启动后创建日志处理线程;
应用线程创建模块,用于在日志处理线程创建后创建至少一个应用线程;
其中,应用线程用于根据当前日志长度生成日志消息包并发送给日志处理线程,日志处理线程用于解析得到的日志消息包并将日志记录到日志文件。
在本发明所述的日志记录系统中,所述的将生成的日志消息包发送给日志处理线程包括:应用线程根据当前日志长度动态申请内存存储空间,将当前日志写入申请到的内存存储空间中以生成所述日志消息包,并将日志消息包发送给日志处理线程,再返回处理其他业务。
在本发明所述的日志记录系统中,日志处理线程还用于根据当前时间信息定时创建以当前时间信息命名的日志文件;
所述的将日志记录到日志文件包括:将日志记录到当前时间信息所对应的日志文件。
在本发明所述的日志记录系统中,日志处理线程还用于间隔一定时间创建一个日志文件夹,并在该日志文件夹内定时创建多个所述日志文件。
在本发明所述的日志记录系统中,定时创建的日志文件位于硬盘中。
实施本发明的日志记录方法以及系统,具有以下有益效果:本发明使用专门的日志线程处理日志,使日志发起方不再直接操作日志文件线程,不占用应用线程多余时间,使应用线程把时间都用在业务处理上,提高日志发起方的其它业务处理性能;且根据当前日志长度生成日志消息包,不会造成存储空间的浪费或者存储空间不够导致日志记录不全;进一步的,本发明定时创建以当前时间信息命名的日志文件,避免单个日志文件过大,且方便查询和传输。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是一种传统的记录日志的时序图;
图2是本发明的日志记录方法的流程图;
图3是本发明的日志记录方法的时序图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
为了解决现有技术中,因为频繁操作文件和直接写文件导致处理性能下降的缺陷,本发明使用专门的日志线程处理日志,使日志发起方不再直接操作日志文件线程,不占用应用线程多余时间,使应用线程把时间都用在业务处理上,提高日志发起方的其它业务处理性能。为了解决每个日志包分配固定大小存储空间造成内存浪费或日志过长时打印不全的问题,本发明根据当前日志长度生成日志消息包,不会造成存储空间的浪费或者存储空间不够导致日志记录不全。
下面结合具体的实施例对本发明进行详细说明。
参考图2是本发明的日志记录方法的流程图;图3是本发明的日志记录方法的时序图。
本发明的日志记录方法包括:
S1、主线程启动后创建日志处理线程;
S2、创建至少一个应用线程;
S3、应用线程根据当前日志长度生成日志消息包并发送给日志处理线程;
S4、日志处理线程解析得到的日志消息包并将日志记录到日志文件。
本发明中多个应用线程可以同时向日志处理线程发送日志消息包,日志处理线程可以处理多个应用线程发送的日志消息包。应用线程发送日志消息后便立即返回处理其它业务,不必等待日志处理结束,日志记录和正常业务处理并发执行。
具体的,所述步骤S3包括:应用线程根据当前日志长度动态申请内存存储空间,将当前日志写入申请到的内存存储空间中以生成所述日志消息包,并将日志消息包发送给日志处理线程,再返回处理其他业务。
优选的,所述步骤S1还包括:日志处理线程根据当前时间信息定时创建以当前时间信息命名的日志文件;其中,定时创建的日志文件位于硬盘中。
相应的,所述步骤S4中所述的将日志记录到日志文件包括:将日志记录到当前时间信息所对应的日志文件。
可以理解的是,具体的日志文件创建间隔可以根据系统的日志写入频率设定,如果系统写入日志比较频繁,则可以将时间间隔设定短一些,如果系统只是偶尔写入日志,则将时间间隔设定长一些。比如,对于写入比较频繁的情况,可以以小时为单位,在每个整点时刻创建一个日志文件,以记录此后一个小时内的所有日志。
由于本发明定时创建以当前时间信息命名的日志文件,避免单个日志文件过大,且方便查询和传输。
进一步优选的,所述步骤S1还包括:间隔一定时间创建一个日志文件夹,并在该日志文件夹内定时创建多个所述日志文件。
例如,假定日志创建目录为/log,系统根据写入频率,设定间隔一个月创建一个文件夹,间隔一天创建一个日志文件。在2016-11-14 09:28:50系统出现异常,产生一条异常日志,日志内容为一条字符串,记录了具体的异常内容,则此条异常日志会写入硬盘上的/log/2016-11的文件夹内的文件名为14的日志文件中。技术人员进行维护时,如需查询日志,可以根据时间快速调取相应的日志文件。
相应的,本发明还公开了一种与上述方法对应的日志记录系统,该日志记录系统包括:
日志处理线程创建模块,用于在主线程启动后创建日志处理线程;
应用线程创建模块,用于在日志处理线程创建后创建至少一个应用线程;
其中,应用线程用于根据当前日志长度生成日志消息包并发送给日志处理线程,日志处理线程用于解析得到的日志消息包并将日志记录到日志文件。
具体的,所述的将生成的日志消息包发送给日志处理线程包括:应用线程根据当前日志长度动态申请内存存储空间,将当前日志写入申请到的内存存储空间中以生成所述日志消息包,并将日志消息包发送给日志处理线程,再返回处理其他业务。
优选的,日志处理线程还用于根据当前时间信息定时创建以当前时间信息命名的日志文件;定时创建的日志文件位于硬盘中。
相应的,所述的将日志记录到日志文件包括:将日志记录到当前时间信息所对应的日志文件。
进一步优选的,日志处理线程还用于间隔一定时间创建一个日志文件夹,并在该日志文件夹内定时创建多个所述日志文件。
综上所述,实施本发明的日志记录方法以及系统,具有以下有益效果:本发明使用专门的日志线程处理日志,使日志发起方不再直接操作日志文件线程,不占用应用线程多余时间,使应用线程把时间都用在业务处理上,提高日志发起方的其它业务处理性能;且根据当前日志长度生成日志消息包,不会造成存储空间的浪费或者存储空间不够导致日志记录不全;进一步的,本发明定时创建以当前时间信息命名的日志文件,避免单个日志文件过大,且方便查询和传输。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种日志记录方法,其特征在于,包括:
S1、主线程启动后创建日志处理线程;
S2、创建至少一个应用线程;
S3、应用线程根据当前日志长度生成日志消息包并发送给日志处理线程;
S4、日志处理线程解析得到的日志消息包并将日志记录到日志文件。
2.根据权利要求1所述的日志记录方法,其特征在于,所述步骤S3包括:应用线程根据当前日志长度动态申请内存存储空间,将当前日志写入申请到的内存存储空间中以生成所述日志消息包,并将日志消息包发送给日志处理线程,再返回处理其他业务。
3.根据权利要求1所述的日志记录方法,其特征在于,
所述步骤S1还包括:日志处理线程根据当前时间信息定时创建以当前时间信息命名的日志文件;
所述步骤S4中所述的将日志记录到日志文件包括:将日志记录到当前时间信息所对应的日志文件。
4.根据权利要求3所述的日志记录方法,其特征在于,所述步骤S1还包括:间隔一定时间创建一个日志文件夹,并在该日志文件夹内定时创建多个所述日志文件。
5.根据权利要求3所述的日志记录方法,其特征在于,定时创建的日志文件位于硬盘中。
6.根据权利要求1所述的日志记录系统,其特征在于,包括:
日志处理线程创建模块,用于在主线程启动后创建日志处理线程;
应用线程创建模块,用于在日志处理线程创建后创建至少一个应用线程;
其中,应用线程用于根据当前日志长度生成日志消息包并发送给日志处理线程,日志处理线程用于解析得到的日志消息包并将日志记录到日志文件。
7.根据权利要求6所述的日志记录系统,其特征在于,所述的将生成的日志消息包发送给日志处理线程包括:应用线程根据当前日志长度动态申请内存存储空间,将当前日志写入申请到的内存存储空间中以生成所述日志消息包,并将日志消息包发送给日志处理线程,再返回处理其他业务。
8.根据权利要求6所述的日志记录系统,其特征在于,
日志处理线程还用于根据当前时间信息定时创建以当前时间信息命名的日志文件;
所述的将日志记录到日志文件包括:将日志记录到当前时间信息所对应的日志文件。
9.根据权利要求8所述的日志记录系统,其特征在于,日志处理线程还用于间隔一定时间创建一个日志文件夹,并在该日志文件夹内定时创建多个所述日志文件。
10.根据权利要求8所述的日志记录系统,其特征在于,定时创建的日志文件位于硬盘中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611000230.3A CN108073500A (zh) | 2016-11-14 | 2016-11-14 | 一种日志记录方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611000230.3A CN108073500A (zh) | 2016-11-14 | 2016-11-14 | 一种日志记录方法以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108073500A true CN108073500A (zh) | 2018-05-25 |
Family
ID=62162185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611000230.3A Pending CN108073500A (zh) | 2016-11-14 | 2016-11-14 | 一种日志记录方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073500A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581171A (zh) * | 2020-04-30 | 2020-08-25 | 中国工商银行股份有限公司 | 日志处理方法、装置、计算设备和介质 |
CN111858077A (zh) * | 2020-07-15 | 2020-10-30 | 济南浪潮数据技术有限公司 | 一种存储系统中io请求日志的记录方法、装置及设备 |
CN113240946A (zh) * | 2021-07-12 | 2021-08-10 | 天津七一二通信广播股份有限公司 | 一种应用于gbas地面站的数据记录方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464890A (zh) * | 2008-12-30 | 2009-06-24 | 中兴通讯股份有限公司 | 一种混合日志生成方法和解析方法 |
CN101482836A (zh) * | 2008-01-11 | 2009-07-15 | 联发科技股份有限公司 | 处理系统日志的装置与处理系统日志的方法 |
CN101667113A (zh) * | 2008-09-02 | 2010-03-10 | 阿里巴巴集团控股有限公司 | 一种多线程日志记录方法及装置 |
CN103176888A (zh) * | 2011-12-22 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种日志记录的方法和系统 |
CN105045874A (zh) * | 2015-07-17 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种提高数据库性能的方法及装置 |
CN105224444A (zh) * | 2015-10-14 | 2016-01-06 | 深圳市金证科技股份有限公司 | 日志生成方法及装置 |
WO2016060700A1 (en) * | 2014-10-17 | 2016-04-21 | Hewlett Packard Enterprise Development Lp | File system journaling |
-
2016
- 2016-11-14 CN CN201611000230.3A patent/CN108073500A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101482836A (zh) * | 2008-01-11 | 2009-07-15 | 联发科技股份有限公司 | 处理系统日志的装置与处理系统日志的方法 |
CN101667113A (zh) * | 2008-09-02 | 2010-03-10 | 阿里巴巴集团控股有限公司 | 一种多线程日志记录方法及装置 |
CN101464890A (zh) * | 2008-12-30 | 2009-06-24 | 中兴通讯股份有限公司 | 一种混合日志生成方法和解析方法 |
CN103176888A (zh) * | 2011-12-22 | 2013-06-26 | 阿里巴巴集团控股有限公司 | 一种日志记录的方法和系统 |
WO2016060700A1 (en) * | 2014-10-17 | 2016-04-21 | Hewlett Packard Enterprise Development Lp | File system journaling |
CN105045874A (zh) * | 2015-07-17 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种提高数据库性能的方法及装置 |
CN105224444A (zh) * | 2015-10-14 | 2016-01-06 | 深圳市金证科技股份有限公司 | 日志生成方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581171A (zh) * | 2020-04-30 | 2020-08-25 | 中国工商银行股份有限公司 | 日志处理方法、装置、计算设备和介质 |
CN111858077A (zh) * | 2020-07-15 | 2020-10-30 | 济南浪潮数据技术有限公司 | 一种存储系统中io请求日志的记录方法、装置及设备 |
CN113240946A (zh) * | 2021-07-12 | 2021-08-10 | 天津七一二通信广播股份有限公司 | 一种应用于gbas地面站的数据记录方法 |
CN113240946B (zh) * | 2021-07-12 | 2022-03-08 | 天津七一二通信广播股份有限公司 | 一种应用于gbas地面站的数据记录方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679772B (zh) | 分布式数据仓库中删除文件的方法、装置、设备及系统 | |
CN108073500A (zh) | 一种日志记录方法以及系统 | |
CN102193926B (zh) | 一种基于文稿在线自动保存的文稿管理方法和系统 | |
CN100498796C (zh) | 逻辑日志生成方法、数据库备份/恢复方法与系统 | |
EP2122587B1 (de) | Verfahren zum zugriff auf einen tragbaren speicherdatenträger mit zusatzmodul und tragbarer speicherdatenträger | |
DE202009019149U1 (de) | Asynchron verteilte Speicherbereinigung für replizierte Speichercluster | |
CN104461685B (zh) | 虚拟机处理方法和虚拟计算机系统 | |
CN103440244A (zh) | 一种大数据存储优化方法 | |
CN102970158A (zh) | 日志存储与处理的方法及日志服务器 | |
CN109542979A (zh) | 一种区块链系统快速同步及简精数据存储的方式 | |
CN105868286A (zh) | 基于分布式文件系统小文件合并的并行追加方法及系统 | |
CN103377100B (zh) | 一种数据备份方法、网络节点及系统 | |
CN103713972B (zh) | 一种增量备份系统和方法 | |
CN103577454A (zh) | 一种文件合并方法和装置 | |
CN105183403A (zh) | 一种基于cups架构的打印管控方法 | |
CN107832423A (zh) | 一种用于分布式文件系统的文件读写方法 | |
CN103475714A (zh) | 一种基于ActiveX技术进行操作日志记录和上传的系统及方法 | |
CN106874145A (zh) | 一种基于消息队列的异步数据备份方法 | |
CN103761262A (zh) | 基于syslogd的重复日志控制方法 | |
CN104123280A (zh) | 文件比对方法和设备 | |
CN102508833A (zh) | 数据监控装置及方法 | |
CN103136370A (zh) | 元数据的恢复方法和装置 | |
CN102752323A (zh) | 分布式session服务系统及方法 | |
CN102402544A (zh) | 一种附件共享的方法、装置及业务系统 | |
CN103207916A (zh) | 元数据处理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180525 |
|
RJ01 | Rejection of invention patent application after publication |