CN111338893B - 进程日志处理方法、装置、计算机设备以及存储介质 - Google Patents
进程日志处理方法、装置、计算机设备以及存储介质 Download PDFInfo
- Publication number
- CN111338893B CN111338893B CN202010105142.XA CN202010105142A CN111338893B CN 111338893 B CN111338893 B CN 111338893B CN 202010105142 A CN202010105142 A CN 202010105142A CN 111338893 B CN111338893 B CN 111338893B
- Authority
- CN
- China
- Prior art keywords
- log
- record information
- file
- inter
- working
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种进程日志处理方法、装置、计算机设备以及存储介质,该方法可以用于获取应用程序的运行过程,该方法包括:接收业务处理请求,通过主进程将业务处理请求分发至工作进程;主进程与工作进程之间具有进程间通信通道;主进程和工作进程分别与日志代理进程具有进程间通信通道;通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,通过日志代理进程,将运行记录信息生成运行日志文件。采用本申请实施例,可以提高进程日志的有效性及完整性。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及进程日志处理方法、装置、计算机设备以及存储介质。
背景技术
日志记录了应用程序运行过程中的一些状态信息,尤其是出错信息。借助日志可以快速检测、定位到网页或软件出错的位置,方便修复。
现有技术中,在程序开发时采用的是多进程的架构,服务在启动时均是以多进程方式启动的,因此日志库对日志的输出操作会在每个进程中发生,即每个进程输出日志的操作都是独立进行的。当生成某进程对应的日志文件后,另一个进程对应的日志文件可能会覆盖该进程对应的日志文件,导致日志的丢失。
发明内容
本申请实施例提供一种进程日志处理方法、装置、计算机设备以及存储介质,可以提高进程日志的有效性及完整性。
本申请实施例一方面提供了一种进程日志处理方法,包括:
接收业务处理请求,通过主进程将业务处理请求分发至工作进程;主进程与工作进程之间具有进程间通信通道;主进程和工作进程分别与日志代理进程具有进程间通信通道;
通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;
通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,通过日志代理进程,将运行记录信息生成运行日志文件。
其中,该方法还包括:
创建日志代理进程,通过主进程启动日志代理进程;
在主进程接收到日志代理进程返回的启动确认信息后,通过主进程启动工作进程。
其中,该方法还包括:
在工作进程所属的主机中启动传输控制协议端口;
根据互联网协议地址和传输控制协议端口,建立工作进程与日志代理进程之间的进程间通信通道。
其中,上述通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,包括:
将运行记录信息进行分组,得到日志信息对应的至少两个数据组;
根据互联网协议地址以及传输控制协议端口所对应的进程间通信通道,将至少两个数据组依次传输至日志代理进程。
其中,该方法还包括:
当检测到日志代理进程针对至少两个数据组对应的数据确认消息时,执行通过日志代理进程,将运行记录信息生成日志文件的步骤;
当目标时间范围内未检测到日志代理进程针对至少两个数据组对应的确认消息时,根据互联网协议地址以及传输控制协议端口所对应的进程间通信通道,向日志代理进程重新传输至少两个数据组。
其中,该方法还包括:
创建第一套接字文件,建立日志代理进程与第一套接字文件之间的第一获取关系,以及工作进程与第一套接字文件之间的第一连接关系;
根据第一套接字文件、第一获取关系以及第一连接关系,建立工作进程与日志代理进程之间的进程间通信通道。
其中,上述通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,包括:
将运行记录信息写入第一套接字文件中,根据日志代理进程与第一套接字文件之间的第一获取关系,通过日志代理进程从第一套接字文件中获取运行记录信息。
其中,该方法还包括:
创建第二套接字文件,建立日志代理进程与第二套接字文件之间的第二获取关系,以及主进程与第二套接字文件之间的第二连接关系;
根据第二套接字文件、第二获取关系以及第二连接关系,建立主进程与日志代理进程之间的进程间通信通道。
其中,该方法还包括:
通过主进程生成与业务处理请求相关联的分发记录信息,将分发记录信息写入第二套接字文件中;
根据日志代理进程与第二套接字文件之间的第二获取关系,通过日志代理进程从第二套接字文件中获取分发记录信息;
通过日志代理进程,将分发记录信息生成分发日志文件。
其中,上述将运行记录信息生成运行日志文件,包括:
获取日志切分参数,在日志代理进程中,根据日志切分参数生成运行记录信息对应的运行日志文件。
其中,日志切分参数包括日志切分节点和日志容量;
上述获取日志切分参数,在日志代理进程中,根据日志切分参数生成运行记录信息对应的运行日志文件,包括:
获取日志切分参数,当系统时间满足日志切分节点时,在日志代理进程中,根据日志容量对运行记录信息进行切分,生成运行记录信息对应的至少一个日志子文件;
根据至少一个日志子文件,生成运行记录信息对应的运行日志文件,将运行日志文件备份在日志库中;运行日志文件包括至少一个日志子文件。
其中,该方法还包括:
当检测到日志库中所包含的运行日志文件的数量大于数量阈值时,删除日志库中最小的日志切分节点所对应的运行日志文件,直至日志库中所包含的运行日志文件的数量小于或等于数量阈值。
本申请实施例一方面提供了一种进程日志处理装置,其特征在于,包括:
分发模块,用于接收业务处理请求,通过主进程将业务处理请求分发至工作进程;主进程与工作进程之间具有进程间通信通道;主进程和工作进程分别与日志代理进程具有进程间通信通道;
生成模块,用于通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;
传输模块,用于通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,通过日志代理进程,将运行记录信息生成运行日志文件。
其中,该装置还包括:
第一创建模块,用于创建日志代理进程,通过主进程启动日志代理进程;
工作进程启动模块,用于在主进程接收到日志代理进程返回的启动确认信息后,通过主进程启动工作进程。
其中,该装置还包括:
端口启动模块,用于在工作进程所属的主机中启动传输控制协议端口;
第一通道建立模块,用于根据互联网协议地址和传输控制协议端口,建立工作进程与日志代理进程之间的进程间通信通道。
其中,传输模块包括:
分组单元,用于将运行记录信息进行分组,得到日志信息对应的至少两个数据组;
第一数据传输单元,根据互联网协议地址以及传输控制协议端口所对应的进程间通信通道,将至少两个数据组依次传输至日志代理进程。
其中,该装置还包括:
确认模块,用于当检测到日志代理进程针对至少两个数据组对应的数据确认消息时,执行上述通过日志代理进程,将运行记录信息生成日志文件的步骤;
上述确认模块,还用于当目标时间范围内未检测到日志代理进程针对至少两个数据组对应的确认消息时,根据互联网协议地址以及传输控制协议端口所对应的进程间通信通道,向日志代理进程重新传输至少两个数据组。
其中,该装置还包括:
第二创建模块,用于创建第一套接字文件,建立日志代理进程与第一套接字文件之间的第一获取关系,以及工作进程与第一套接字文件之间的第一连接关系;
第二通道建立模块,用于根据第一套接字文件、第一获取关系以及第一连接关系,建立工作进程与日志代理进程之间的进程间通信通道。
其中,传输模块具体用于:
将运行记录信息写入第一套接字文件中,根据日志代理进程与第一套接字文件之间的第一获取关系,通过日志代理进程从第一套接字文件中获取运行记录信息。
其中,该装置还包括:
第三创建模块,用于创建第二套接字文件,建立日志代理进程与第二套接字文件之间的第二获取关系,以及主进程与第二套接字文件之间的第二连接关系;
第三通道建立模块,用于根据第二套接字文件、第二获取关系以及第二连接关系,建立主进程与日志代理进程之间的进程间通信通道。
其中,该装置还包括:
写入模块,用于通过主进程生成与业务处理请求相关联的分发记录信息,将分发记录信息写入第二套接字文件中;
获取模块,用于根据日志代理进程与第二套接字文件之间的第二获取关系,通过日志代理进程从第二套接字文件中获取分发记录信息;
文件生成模块,用于通过日志代理进程,将分发记录信息生成分发日志文件。
其中,传输模块具体用于:
获取日志切分参数,在日志代理进程中,根据日志切分参数生成运行记录信息对应的运行日志文件。
其中,日志切分参数包括日志切分节点和日志容量;
传输模块包括:
切分单元,用于获取日志切分参数,当系统时间满足日志切分节点时,在日志代理进程中,根据日志容量对运行记录信息进行切分,生成运行记录信息对应的至少一个日志子文件;
备份单元,用于根据至少一个日志子文件,生成运行记录信息对应的运行日志文件,将日志文件备份在日志库中;运行日志文件包括至少一个日志子文件。
其中,该装置还包括:
删除模块,用于当检测到日志库中所包含的运行日志文件的数量大于数量阈值时,删除日志库中最小的日志切分节点所对应的运行日志文件,直至日志库中所包含的运行日志文件的数量小于或等于数量阈值。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中一方面中方法的步骤。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行如本申请实施例中一方面中方法的步骤。
本申请实施例可以接收业务处理请求,通过主进程将业务处理请求分发至工作进程,其中,主进程与工作进程之间具有进程间通信通道,主进程和工作进程分别与日志代理进程具有进程间通信通道,进而可以通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,进而可以通过日志代理进程,将运行记录信息生成运行日志文件。可见,通过创建日志代理进程,并建立工作进程与日志代理进程之间的进程间通信通道,可以将工作进程的运行记录信息集中传输至日志代理进程,由日志代理进程将工作进程对应的运行记录信息统一输出在日志文件中,可以提高进程日志的有效性及完整性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种系统结构图;
图2是本申请实施例提供的一种进程日志处理场景示意图;
图3是本申请实施例提供的一种进程日志处理方法的流程示意图;
图4是本申请实施例提供的一种启动日志代理进程的示意图;
图5是本申请实施例提供的一种建立主进程与工作进程之间的进程间通信通道的示意图;
图6是本申请实施例提供的一种进程日志处理方法的流程示意图;
图7是本申请实施例提供的一种进程间通信的流程示意图;
图8是本申请实施例提供的一种进程日志处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本申请实施例提供的方案属于云技术领域下属的管理工具领域。管理工具领域涉及云计算系统的平台管理技术,该平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
请参见图1,是本申请实施例提供的一种系统结构图。Nodejs是一个基于浏览器编程语言(chrome JavaScript)运行时建立的一个平台,即Nodejs是运行在服务端的编程语言。Nodejs服务启动时通常均会以多进程方式启动的,进程可以包括主进程和工作进程,主进程负责调度和管理工作进程,工作进程负责具体的业务处理。从服务器层面而言,工作进程可以理解为一个服务进程,如图1所示,在应用10a启动后,该应用10a中可以具体包括主进程10b、工作进程10c、工作进程10d以及工作进程10e。其中,主进程10b负责创建工作进程,接收客户端发送的业务处理请求,然后将所接收的业务处理请求分配到各工作进程进行处理,主进程10b可以获取工作进程的运行状态及进行管理操作;工作进程可以用于执行业务处理请求,工作进程之间是相互独立的。
可以创建日志代理进程10f,该日志代理进程10f中包括日志输出逻辑,即日志代理进程10f可以用于收集主进程10b和所有工作进程分别对应的日志消息,将所收集到的日志消息输出至日志文件中。换言之,主进程10b、工作进程10c、工作进程10d以及工作进程10e分别与日志代理进程10f之间具有进程间通信通道,通过进程间通信通道,主进程10b和各工作进程可以将日志消息发送至日志代理进程10f,由日志代理进程10f生成日志文件。
请参见图2,是本申请实施例提供的一种进程日志处理场景示意图。如图2所示,用户在终端设备20a的客户端中可以输入链接,客户端可以根据用户所输入的链接向主进程发送业务处理请求。主进程在接收到客户端发送的业务处理请求后,可以创建多个工作进程(如工作进程1,工作进程2以及工作进程3等),并将接收到的业务处理请求分发至多个工作进程。其中,主进程与工作进程是Nodejs中的父子进程,主进程在创建工作进程之前,创建进程间通信通道并获取该进程间通信通道,才真正创建出工作进程,通过环境变量(如NODE_CHANNEL_FD)告诉工作进程上述进程间通信通道对应的描述符。在工作进程启动的过程中,可以根据描述符连接已经存在的进程间通信通道,从而完成主进程和工作进程之间的连接。进程间通信的目的是为了让不同的进程可以相互访问资源,如主进程可以将业务处理请求分发至工作进程,工作进程可以将业务处理请求的业务处理结果返回至主进程。
应当理解,在工作进程执行业务处理请求的过程中,可以对业务处理请求的运行过程进行记录,得到各工作进程对应的日志。各工作进程对应的日志可能是同时生成的,为了获得各工作进程完整的日志,可以创建一个日志代理进程,并建立日志代理进程分别与各工作进程之间的进程间通信通道。
工作进程在接收到主进程发送的业务处理请求后,可以对业务处理请求进行处理,在处理过程中可以生成业务处理请求对应的运行记录信息,该运行记录信息也可以称为日志消息。通过工作进程与日志代理进程之间的进程间通信通道,工作进程可以将各自的运行记录信息传输至日志代理进程,日志代理进程在接收到各工作进程分别对应的运行记录信息后,可以按照时间顺序,将运行记录信息输出在一个日志文件中。由于将各工作进程的运行记录文件在输出日志文件时,可以对运行记录信息进行切分,得到多个日志子文件。
其中,终端设备20a可以包括手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)等。
请参见图3,是本申请实施例提供的一种进程日志处理方法的流程示意图,该方法可以由服务器执行,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请在此不做限制。如图3所示,该进程日志处理方法可以包括以下步骤:
步骤S101,接收业务处理请求,通过主进程将业务处理请求分发至工作进程;主进程与工作进程之间具有进程间通信通道;主进程和工作进程分别与日志代理进程具有进程间通信通道。
具体的,在执行步骤S101之前,需要创建日志代理进程,并通过主进程启动该日志代理进程,在主进程接收到日志代理进程返回的启动确认信息后,通过主进程可以启动工作进程。其中,日志代理进程是指一个专门用于输出日志文件的进程,上述日志代理进程的创建以及启动过程,是为了确保日志代理进程在主进程/工作进程之前就处于可使用的状态。
请一并参见图4,是本申请实施例提供的一种启动日志代理进程的示意图。如图4所示,在创建了日志代理进程后,主进程可以启动该日志代理进程,日志代理进程在接收到主进程的启动命令后,可以将状态由未启动状态更新为启动状态,并向主进程返回启动确认信息,以通知主进程该日志代理进程已经做好收集日志的准备工作。主进程在接收到日志代理进程返回的启动确认信息后,可以启动一定数量的工作进程,即主进程可以同时启动至少一个工作进程。
当用户在客户端或浏览器中输入链接时,客户端或浏览器可以根据链接向主进程发送业务处理请求,通过主进程将所接收到的业务处理请求分发至工作进程。其中,主进程与工作进程为父子进程,即主进程为父进程,工作进程为子进程,主进程与工作进程之间的进程间通信可以根据环境变量自动实现;主进程和工作进程分别与日志代理进程具有进程间通信通道,由于日志代理进程与主进程/工作进程均不是父子进程,因此日志代理进程与主进程/工作进程之间的进程间通信还需要按照约定去连接。
请一并参见图5,是本申请实施例提供的一种建立主进程与工作进程之间的进程间通信通道的示意图。如图5所示,主进程30a在实际创建工作进程30b前,可以创建进程间通信通道30c并获取进程间通信通道30c,此时才创建出了工作进程30b,可以通过环境变量通知工作进程30b该进程间通信通道30c的描述符(如文件描述符)。工作进程30b在启动的过程中,根据描述符连接进程间通信通道30c从而完成主进程30a与工作进程30b之间的连接。建立连接之后的主进程30a和工作进程30b之间就可以自由的通信了,进程间通信通道30c属于双向通道,即主进程30a可以通过进程间通信通道30c向工作进程30b传输数据,工作进程30b也可以通过进程间通信通道30c向主进程30a传输数据。主进程30a和工作进程30b可以在系统内核中完成进程间的通信,而不经过网络层。需要说明的是,当主进程30a接收到工作进程30b的请求结束消息或检测到工作进程30b断开时,则关闭与工作进程30b之间的进程间通信通道30c。
为了释放资源,当工作进程30b正常退出时,主进程30a会收到工作进程30b发送的请求结束消息,主进程30a收到请求结束消息后,关闭与该工作进程30b之间的进程间通信信道30c并释放资源。为了保证通信的稳定,主进程30a对工作进程30b的通信状态进行实时获取,当工作进程30b发生异常或崩溃时,主进程30a可检测到工作进程30b的连接异常,此时主进程30a虽然没有收到该工作进程30b的请求结束消息,也会主动关闭与该工作进程30b之间的进程间通信信道30c并释放资源。
日志代理进程与主进程/工作进程之间的进程间通信通道可以通过套接字(socket)、TCP端口、共享内存以及域套接字(domain socket)等方式来创建。建立日志代理进程与主进程/工作进程之间的进程间通信通道之后,工作进程/主进程可以直接与日志代理进程进行通信,即日志代理进程可以直接接收工作进程/主进程发送的数据。
步骤S102,通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息。
具体的,工作进程在接收到主进程分发的业务处理请求后,通过工作进程可以执行与业务处理请求相关联的业务逻辑,如工作进程可以执行登录业务、密码修改业务、数据库查询业务以及数据渲染越等,在完成业务处理请求的处理过程后,可以生成业务处理请求对应的运行记录信息(也可以称为日志消息),该运行记录信息可以用于排查业务处理请求处理过程中的错误。
步骤S103,通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,通过日志代理进程,将运行记录信息生成运行日志文件。
具体的,服务器可以通过工作进程与日志代理进程之间的进程间通信通道,将工作进程中所生成的运行记录信息传输至日志代理进程,通过日志代理进程将运行记录信息生成运行日志信息。日志代理进程可以将接收到的运行记录信息按照时间顺序输出在一个日志文件中。
可选的,若工作进程的数量较多,或者工作进程处理的业务处理请求的频率很高,日志代理进程根据工作进程对应的运行记录信息所生成的日志文件会很大,不便于用户根据日志文件定位、检测运行过程中的错误。服务器可以获取日志切分参数,在日志代理进程中,根据日志切分参数生成运行记录信息对应的运行日志文件。日志切分参数可以包括日志切分节点、日志容量中的至少一项。例如,日志切分参数为日志切分节点,在每天0:00的时刻进行日志输出,日志代理进程可以将工作进程对应的运行记录信息首先缓存在等待队列中,工作进程可以随时与工作进程进行进程间通信,并随时将产生的运行记录信息传输至日志代理进程,运行记录信息可以按照接收时间在等待队列中进行排序。在系统时间达到日志切分节点(即系统时间为0:00)时,日志代理进程可以将等待队列中缓存的运行记录信息,生成运行日志文件,即每天均可以生成一个运行日志文件。其中,生成运行日志文件后的运行记录信息,可以从等待队列中删除。日志切分参数为日志容量,如每个运行日志文件的容量不能超过容量阈值(如100kb),在日志代理进程可以将等待队列中等于或小于容量阈值的运行记录文件,生成一个日志文件等。
可选的,当日志切分参数包括日志切分节点和日志容量时,获取日志切分参数,当系统时间满足日志切分节点时,在日志代理进程中,根据日志容量对运行记录信息进行切分,生成运行记录信息对应的至少一个日志子文件;根据至少一个日志子文件,生成运行记录信息对应的运行日志文件,将运行日志文件备份在日志库中;运行日志文件包括至少一个日志子文件。换言之,日志代理进程接收到工作进程传输的运行记录信息后,可以将运行记录信息按照接收时间缓存在等待队列中,当系统时间满足日志切分节点时,日志代理进程可以根据日志容量,从等待队列中依次提取出运行记录信息,生成运行记录信息对应的至少一个日志子文件,将同一个日志切换周期内的所有日志子文件确定为运行日志文件,并将运行日志文件被分在日志库中。
举例来说,日志切分节点为每天0:00,日志容量为100k,可以预先设置运行日志文件的路径,如在2020年1月20号0:00时,可以触发日志代理进程从等待队列中获取运行记录信息生成运行日志文件。进一步的,可以按照运行记录信息产生的时间顺序从等待队列中提取运行记录信息,将满足容量阈值的运行记录信息生成一个日志子文件,在日志子文件中可以包括工作进程对应的名称以及业务处理请求的运行记录信息。在生成日志子文件的过程中,可以对所生成的日志子文件进行滚动,即生成一个日志子文件后,对所生成的日志子文件进行重命名,随后生成下一个日志子文件,如第一个日志子文件可以命名为log.1,下一个日志子文件可以重命名为log.2,再下一个日志子文件可以重命名为log.3等。将上述所生成的日志文件存放在一个文件夹中(该文件夹的路径即为预先设置的运行日志文件的路径),该文件夹可以命名为20200119.log,该文件夹即为工作进程对应的运行日志文件。
可选的,为了防止运行日志文件占用大量的内存,可以实时检测日志库中所包含的运行日志文件的数量。当检测到日志库中所包含的运行日志文件的数量大于数量阈值时,删除日志库中最小的日志切分节点所对应的运行日志文件,直至日志库中所包含的运行日志文件的数量小于或等于所述数量阈值。换言之,可以实时清理日志库中时间较长的运行日志文件。例如,日志库中所包含的运行日志文件对应的数量阈值为7,当日志库中所包含的运行日志文件的数量大于7时,可以按照运行日志文件生成时间的顺序进行删除,可以删除生成时间最早的运行日志文件,直至日志库中所包含的运行日志文件的数量小于或等于上述数量阈值。
可选的,还可以预先设置日志库中所有运行日志文件的总容量阈值,当运行日志文件的总容量大于上述总容量阈值时,可以删除生成时间最早的运行日志文件,直至日志库中所包含的运行日志文件的总容量小于或等于总容量阈值。
可以理解的是,运行日志文件可以通过多种方式来实现,如使用winston +winton-daily-rotate-file Transport (一种生成日志文件的方法)或dateFileappender(一种生成日志文件的方法)来实现日志同时按天以及按大小切分。
本申请实施例可以接收业务处理请求,通过主进程将业务处理请求分发至工作进程,其中,主进程与工作进程之间具有进程间通信通道,主进程和工作进程分别与日志代理进程具有进程间通信通道,进而可以通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,进而可以通过日志代理进程,将运行记录信息生成运行日志文件。可见,通过创建日志代理进程,并建立工作进程与日志代理进程之间的进程间通信通道,可以将工作进程的运行记录信息集中传输至日志代理进程,由日志代理进程将工作进程对应的运行记录信息统一输出在日志文件中,可以提高进程日志的有效性及完整性,工作进程与日志代理进程之间的通信无需通过主进程进行中转,可以减少进程间通信的次数,从而提高进程间的数据传输效率。
请参见图6,是本申请实施例提供的一种进程日志处理方法的流程示意图,该方法可以由服务器(如Nodejs)执行。如图6所示,该进程日志处理方法可以包括以下步骤:
步骤S201,创建第一套接字文件,建立日志代理进程与第一套接字文件之间的第一获取关系,以及工作进程与第一套接字文件之间的第一连接关系;根据第一套接字文件、第一获取关系以及第一连接关系,建立工作进程与日志代理进程之间的进程间通信通道。
具体的,在执行步骤S201之前,服务器需要创建日志代理进程,并通过主进程启动该日志代理进程,在主进程接收到日志代理进程返回的启动确认信息后,通过主进程可以启动工作进程。其中,日志代理进程的启动过程,以及工作进程与主进程之间的进程间通信通道的建立过程可以参见上述图3所对应实施中的步骤S101,这里不再进行赘述。
由于日志代理进程与工作进程/主进程均不是父子进程,即日志代理进程与主进程/工作进程之间不能根据环境变量在系统中自动建立通信关系,而是需要按照约定去建立连接关系。日志代理进程与工作进程之间的进程间通信通道的建立方式可以包括:使用域套接字(domain socket)进行通信,即通过创建第一套接字文件,建立日志代理进程与第一套接字文件之间的第一获取关系,以及工作进程与日志代理进程之间的第一连接关系,即日志代理进程可以获取该第一套接字文件,工作进程可以与第一套接字文件进行连接;根据第一套接字文件、第一获取关系以及第一连接关系,建立工作进程与日志代理进程之间的进程间通信通道。换言之,服务器可以在系统上创建第一套接字文件,日志代理进程与工作进程之间通过读写该第一套接字文件来实现通信。域套接字的地址为套接字类型的文件在文件系统中的路径,该第一套接字文件可以通过调用bind()(绑定函数)来创建,如果调用bind()时该第一套接字文件已经存在,则bind()错误返回。因此,通常在调用bind(),即创建第一套接字文件之前,需要检查第一套接字文件是否存在,若已经存在,则将已经存在的第一套接字文件删除。
其中,域套接字通常用于同一主机上的进程间通信,使用域套接字的方式建立工作进程与日志代理进程之间的进程间通信通道,不需要经过网络协议栈,不需要执行打包拆包、计算校验和、维护序号和应答等流程,只是将应用层数据从一个进程拷贝到另一个进程,可以提高进程间通信的稳定性、可靠性以及效率。
步骤S202,接收业务处理请求,通过主进程将业务处理请求分发至工作进程。
步骤S203,通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息。
其中,步骤S201-步骤S203的具体实现过程可以参见上述图3所对应实施例中,步骤S101和步骤S102中的描述,这里不再进行赘述。
步骤S204,将运行记录信息写入第一套接字文件中,根据日志代理进程与第一套接字文件之间的第一获取关系,通过日志代理进程从第一套接字文件中获取运行记录信息,将运行记录信息生成运行日志文件。
具体的,工作进程在产生运行记录信息后,可以根据工作进程与日志代理进程之间的第一连接关系,将运行记录信息写入第一套接字文件中;通过日志代理进程与第一套接字文件之间的第一获取关系,日志代理进程可以实时获取第一套接字文件中的数据状态信息,当工作进程将运行记录信息写入第一套接字文件之后,日志代理进程可以检测到第一套接字文件中的数据变化,从第一套接字文件中获取工作进程所写入的运行记录信息。日志代理进程在收集到工作进程对应的运行记录信息之后,可以将运行记录信息生成运行日志文件。运行日志文件的生成过程可以参见上述图3所对应实施例中对步骤S103的描述,这里不再进行赘述。
应当理解,主进程与日志代理进程之间也可以使用域套接字进行通信,主进程与日志代理进程之间的进程间通信通道的建立方式可以包括:通过创建第二套接字文件,建立日志代理进程与第二套接字文件之间的第二获取关系,以及主进程与第二套接字文件之间的第二连接关系;根据第二套接字文件、第二获取关系以及第二连接关系,建立主进程与日志代理进程之间的进程间通信通道;通过主进程生成与业务处理请求相关联的分发记录信息,将分发记录信息写入第二套接字文件中;根据日志代理进程与第二套接字文件之间的第二获取关系,通过日志代理进程从第二套接字文件中获取分发记录信息;通过日志代理进程,将分发记录信息生成分发日志文件。
与上述工作进程与日志代理进程之间的进程间通信通道的建立过程相同,可以调用bind()创建第二套接字文件;主进程与第二套接字文件之间可以建立连接关系,即主进程可以向第二套接字文件中写入数据;日志代理进程与第二套接字文件之间建立获取关系,即日志代理进程可以从第二套接字文件中读取数据。主进程在接收到业务处理请求后,可以将业务处理请求分发至工作进程,此时的主进程可以生成与业务处理请求相关联的分发记录信息,并将分发记录信息写入第二套接字文件中;日志代理进程可以通过获取第二套接字文件,从第二套接字文件中读取主进程所写入的分发记录信息,并根据分发记录信息生成分发日志文件。分发日志文件的生成过程同样可以参见上述图3所对应实施例中对步骤S103的描述,这里不再赘述。需要说明的是,上述主进程与工作进程是同一个应用中的进程,因此可以将上述分发日志文件与上述运行日志文件进行合并,即日志代理进程可以收集主进程对应的分发记录信息和工作进程对应的运行记录信息,并将分发记录信息与运行记录信息输出在同一个日志文件中。
请一并参见图7,是本申请实施例提供的一种进程间通信的流程示意图。如图7所示,可以使用域套接字作为主进程/工作进程与日志代理进程之间的通信方式,首先需要创建套接字文件(包括上述第一套接字文件或者第二套接字文件),然后建立主进程/工作进程与套接字文件之间的连接关系(包括上述第一连接关系或者第二连接关系),以及日志代理进程与套接字文件之间的获取关系(包括上述第一获取关系或者第二获取关系),通过读写套接字文件,可以实现主进程/工作进程与日志代理进程之间的双向通信。如主程序/工作进程通过套接字文件,向日志代理进程传输日志消息(包括运行记录信息和分发记录信息)。
可选的,主进程/工作进程之间的通信方式还可以通过传输控制协议(Transmission Control Protocol,TCP)端口来实现,TCP通信方式需要利用主机的传输层,不仅可以用于同一台主机上不同进程间的通信,也可以用于远程通信,即可以用于实现网络上不同主机之间的通信。服务器可以在工作进程所属的主机中启动传输控制协议端口,根据互联网协议地址和传输控制协议端口,建立工作进程与日志代理进程之间的进程间通信通道。换言之,在本地主机上启动一个TCP端口后,通过互联网协议地址(IP地址)和TCP地址,建立工作进程与日志代理进程之间的进程间通信通道。在建立TCP通信通道的过程中,工作进程需要向日志代理进程发送一个同步序列编号(SYN包)作为建立连接的请求等待确认应答,在日志代理进程发送了确认应答后,则认为子进程与日志代理进程之间可以进行数据通信;随后工作进程可以向日志代理进程发送连接请求,在日志代理进程返回确认建立请求后,则建立了工作进程与日志代理进程之间的连接关系。当然,对于主进程与日志代理进程之间的TCP通信方式,可以采用上述同样的方式。
将运行记录信息进行分组,得到日志信息对应的至少两个数据组;根据互联网协议地址以及传输控制协议端口所对应的进程间通信通道,将至少两个数据组依次传输至日志代理进程。在工作进程中生成业务处理请求对应的运行记录信息后,可以将运行记录信息进行分组,以分组的方式将运行记录信息传输至日志代理进程中。
当检测到日志代理进程针对至少两个数据组对应的数据确认消息时,可以通过日志代理进程,将运行记录信息生成日志文件;当目标时间范围内未检测到日志代理进程针对至少两个数据组对应的确认消息时,根据互联网协议地址以及传输控制协议端口所对应的进程间通信通道,向日志代理进程重新传输至少两个数据组。换言之,日志代理进程在接收到工作进程传输的运行记录信息后,可以向工作进程返回一个数据确认消息,若工作进程在目标时间范围(该目标时间范围可以进行提前设置)未接收到数据确认消息,则工作进程可以向日志代理进程重新传输一次运行记录信息;若工作进程在目标时间范围内接收到数据确认消息,则可以根据运行记录信息生成运行日志文件。应当理解,通过上述相同的操作流程,日志代理进程可以获取主进程对应的分发记录信息,可以将分发记录信息与上述运行记录文件输出在同一个日志文件中。
可选的,TCP通信方式与域套接字通信方式之间可以进行切换,如使用域套接字通信方式进行同一主机的进程间的通信时,通过在编程接口中将套接字文件在文件系统中的路径更新为IP地址和TCP端口,即可从域套接字通信方式切换为TCP通信方式。在本申请实施例中,可以使用域套接字进行同一主机中的进程间通信,使用TCP连接进行不同主机中的进程间通信。
本申请实施例可以接收业务处理请求,通过主进程将业务处理请求分发至工作进程,其中,主进程与工作进程之间具有进程间通信通道,主进程和工作进程分别与日志代理进程具有进程间通信通道,进而可以通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,进而可以通过日志代理进程,将运行记录信息生成运行日志文件。可见,通过创建日志代理进程,并建立工作进程与日志代理进程之间的进程间通信通道,可以将工作进程的运行记录信息集中传输至日志代理进程,由日志代理进程将工作进程对应的运行记录信息统一输出在日志文件中,可以提高进程日志的有效性及完整性,工作进程与日志代理进程之间的通信无需通过主进程进行中转,可以减少进程间通信的次数,从而提高进程间的数据传输效率。
请参见图8,是本申请实施例提供的一种进程日志处理装置的结构示意图。该进程日志处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该进程日志处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该进程日志处理装置1可以包括:分发模块10,生成模块11,传输模块12;
分发模块10,用于接收业务处理请求,通过主进程将业务处理请求分发至工作进程;主进程与工作进程之间具有进程间通信通道;主进程和工作进程分别与日志代理进程具有进程间通信通道;
生成模块11,用于通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;
传输模块12,用于通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,通过日志代理进程,将运行记录信息生成运行日志文件。
其中,分发模块10,生成模块11,传输模块12的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101-步骤S103,这里不再进行赘述。
请一并参见图8,该进程日志处理装置1还可以包括:第一创建模块13,工作进程启动模块14,端口启动模块15,第一通道建立模块16,确认模块17,删除模块20;
第一创建模块13,用于创建日志代理进程,通过主进程启动日志代理进程;
工作进程启动模块14,用于在主进程接收到日志代理进程返回的启动确认信息后,通过主进程启动工作进程;
端口启动模块15,用于在工作进程所属的主机中启动传输控制协议端口;
第一通道建立模块16,用于根据互联网协议地址和传输控制协议端口,建立工作进程与日志代理进程之间的进程间通信通道;
确认模块17,用于当检测到日志代理进程针对至少两个数据组对应的数据确认消息时,执行上述通过日志代理进程,将运行记录信息生成日志文件的步骤;
上述确认模块17,还用于当目标时间范围内未检测到日志代理进程针对至少两个数据组对应的确认消息时,根据互联网协议地址以及传输控制协议端口所对应的进程间通信通道,向日志代理进程重新传输至少两个数据组;
删除模块20,用于当检测到日志库中所包含的运行日志文件的数量大于数量阈值时,删除日志库中最小的日志切分节点所对应的运行日志文件,直至日志库中所包含的运行日志文件的数量小于或等于数量阈值。
其中,第一创建模块13,工作进程启动模块14的具体功能实现方式可以参见上述图3所对应实施例中的步骤S101,端口启动模块15,第一通道建立模块16,确认模块17的具体功能实现方式可以参见上述图6所对应实施例中的步骤S204,删除模块20的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
请一并参见图8,传输模块12可以包括:分组单元121,第一数据传输单元122;
分组单元121,用于将运行记录信息进行分组,得到日志信息对应的至少两个数据组;
第一数据传输单元122,根据互联网协议地址以及传输控制协议端口所对应的进程间通信通道,将至少两个数据组依次传输至日志代理进程。
其中,传输模块12可以具体用于:
获取日志切分参数,在日志代理进程中,根据日志切分参数生成运行记录信息对应的运行日志文件。
其中,日志切分参数包括日志切分节点和日志容量;
传输模块12还可以包括:切分单元123,备份单元124;
切分单元123,用于获取日志切分参数,当系统时间满足日志切分节点时,在日志代理进程中,根据日志容量对运行记录信息进行切分,生成运行记录信息对应的至少一个日志子文件;
备份单元124,用于根据至少一个日志子文件,生成运行记录信息对应的运行日志文件,将运行日志文件备份在日志库中;运行日志文件包括至少一个日志子文件。
其中,分组单元121,第一数据传输单元122,切分单元123,备份单元124的具体功能实现方式可以参见上述图3所对应实施例中的步骤S103,这里不再进行赘述。
请一并参见图8,该进程日志处理装置1还可以包括:第二创建模块18,第二通道建立模块19;
第二创建模块18,用于创建第一套接字文件,建立日志代理进程与第一套接字文件之间的第一获取关系,以及工作进程与第一套接字文件之间的第一连接关系;
第二通道建立模块19,用于根据第一套接字文件、第一获取关系以及第一连接关系,建立工作进程与日志代理进程之间的进程间通信通道。
其中,传输模块12具体用于:
将运行记录信息写入第一套接字文件中,根据日志代理进程与第一套接字文件之间的第一获取关系,通过日志代理进程从第一套接字文件中获取运行记录信息。
其中,第二创建模块18,第二通道建立模块19的具体功能实现方式可以参见上述图6所对应实施例中的步骤S201,这里不再进行赘述。
请一并参见图8,该进程日志处理装置1还可以包括:第三创建模块21,第三通道建立模块22,写入模块23,获取模块24,文件生成模块25;
第三创建模块21,用于创建第二套接字文件,建立日志代理进程与第二套接字文件之间的第二获取关系,以及主进程与第二套接字文件之间的第二连接关系;
第三通道建立模块22,用于根据第二套接字文件、第二获取关系以及第二连接关系,建立主进程与日志代理进程之间的进程间通信通道。
写入模块23,用于通过主进程生成与业务处理请求相关联的分发记录信息,将分发记录信息写入第二套接字文件中;
获取模块24,用于根据日志代理进程与第二套接字文件之间的第二获取关系,通过日志代理进程从第二套接字文件中获取分发记录信息;
文件生成模块25,用于通过日志代理进程,将分发记录信息生成分发日志文件。
其中,第三创建模块21,第三通道建立模块22,写入模块23,获取模块24,文件生成模块25的具体功能实现方式可以参见上述图6所对应实施例中的步骤S204,这里不再进行赘述。
本申请实施例可以接收业务处理请求,通过主进程将业务处理请求分发至工作进程,其中,主进程与工作进程之间具有进程间通信通道,主进程和工作进程分别与日志代理进程具有进程间通信通道,进而可以通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,进而可以通过日志代理进程,将运行记录信息生成运行日志文件。可见,通过创建日志代理进程,并建立工作进程与日志代理进程之间的进程间通信通道,可以将工作进程的运行记录信息集中传输至日志代理进程,由日志代理进程将工作进程对应的运行记录信息统一输出在日志文件中,可以提高进程日志的有效性及完整性,工作进程与日志代理进程之间的通信无需通过主进程进行中转,可以减少进程间通信的次数,从而提高进程间的数据传输效率。
请参见图9,是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
接收业务处理请求,通过主进程将业务处理请求分发至工作进程;主进程与工作进程之间具有进程间通信通道;主进程和工作进程分别与日志代理进程具有进程间通信通道;
通过工作进程执行与业务处理请求相关联的业务逻辑,生成业务处理请求对应的运行记录信息;
通过工作进程与日志代理进程之间的进程间通信通道,将运行记录信息传输至日志代理进程,通过日志代理进程,将运行记录信息生成运行日志文件。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3所对应实施例中对进程日志处理方法的描述,也可执行前文图8所对应实施例中对进程日志处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的进程日志处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3所对应实施例中对进程日志处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储存储器(Read-Only Memory,ROM)或随机存储存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种进程日志处理方法,其特征在于,包括:
接收业务处理请求,通过主进程将所述业务处理请求分发至工作进程,在所述主进程中生成分发记录信息,通过所述主进程与日志代理进程之间的进程间通信通道,将所述分发记录信息传输至所述日志代理进程,通过所述日志代理进程将所述分发记录信息生成分发日志文件;所述主进程和所述工作进程为父子进程,所述主进程与所述工作进程之间的进程间通信通道是根据环境变量自动实现的;所述日志代理进程与所述主进程、所述工作进程均不是父子进程,所述日志代理进程与所述主进程、所述工作进程之间的进程间通信通道是按照约定实现的;所述工作进程和所述日志代理进程是由所述主进程直接启动的;
通过所述工作进程执行与所述业务处理请求相关联的业务逻辑,生成所述业务处理请求对应的运行记录信息;
通过所述工作进程与所述日志代理进程之间的进程间通信通道,将所述运行记录信息传输至所述日志代理进程,通过所述日志代理进程,将所述运行记录信息生成运行日志文件。
2.根据权利要求1所述的方法,其特征在于,还包括:
创建所述日志代理进程,通过所述主进程启动所述日志代理进程;
在所述主进程接收到所述日志代理进程返回的启动确认信息后,通过所述主进程启动所述工作进程。
3.根据权利要求1所述的方法,其特征在于,还包括:
在所述工作进程所属的主机中启动传输控制协议端口;
根据互联网协议地址和所述传输控制协议端口,建立所述工作进程与所述日志代理进程之间的进程间通信通道。
4.根据权利要求3所述的方法,其特征在于,所述通过所述工作进程与所述日志代理进程之间的进程间通信通道,将所述运行记录信息传输至所述日志代理进程,包括:
将所述运行记录信息进行分组,得到所述运行记录信息对应的至少两个数据组;
根据所述互联网协议地址以及所述传输控制协议端口所对应的进程间通信通道,将所述至少两个数据组依次传输至所述日志代理进程。
5.根据权利要求4所述的方法,其特征在于,还包括:
当检测到所述日志代理进程针对所述至少两个数据组对应的数据确认消息时,执行所述通过所述日志代理进程,将所述运行记录信息生成日志文件的步骤;
当目标时间范围内未检测到所述日志代理进程针对所述至少两个数据组对应的确认消息时,根据所述互联网协议地址以及所述传输控制协议端口所对应的进程间通信通道,向所述日志代理进程重新传输所述至少两个数据组。
6.根据权利要求1所述的方法,其特征在于,还包括:
创建第一套接字文件,建立所述日志代理进程与所述第一套接字文件之间的第一获取关系,以及所述工作进程与所述第一套接字文件之间的第一连接关系;
根据所述第一套接字文件、所述第一获取关系以及所述第一连接关系,建立所述工作进程与所述日志代理进程之间的进程间通信通道。
7.根据权利要求6所述的方法,其特征在于,所述通过所述工作进程与所述日志代理进程之间的进程间通信通道,将所述运行记录信息传输至所述日志代理进程,包括:
将所述运行记录信息写入所述第一套接字文件中,根据所述日志代理进程与所述第一套接字文件之间的第一获取关系,通过所述日志代理进程从所述第一套接字文件中获取所述运行记录信息。
8.根据权利要求1所述的方法,其特征在于,还包括:
创建第二套接字文件,建立所述日志代理进程与所述第二套接字文件之间的第二获取关系,以及所述主进程与所述第二套接字文件之间的第二连接关系;
根据所述第二套接字文件、所述第二获取关系以及所述第二连接关系,建立所述主进程与所述日志代理进程之间的进程间通信通道。
9.根据权利要求8所述的方法,其特征在于,还包括:
通过所述主进程生成与所述业务处理请求相关联的分发记录信息,将所述分发记录信息写入所述第二套接字文件中;
根据所述日志代理进程与所述第二套接字文件之间的所述第二获取关系,通过所述日志代理进程从所述第二套接字文件中获取所述分发记录信息;
通过所述日志代理进程,将所述分发记录信息生成分发日志文件。
10.根据权利要求1所述的方法,其特征在于,所述将所述运行记录信息生成运行日志文件,包括:
获取日志切分参数,在所述日志代理进程中,根据所述日志切分参数生成所述运行记录信息对应的运行日志文件。
11.根据权利要求10所述的方法,其特征在于,所述日志切分参数包括日志切分节点和日志容量;
所述获取日志切分参数,在所述日志代理进程中,根据所述日志切分参数生成所述运行记录信息对应的运行日志文件,包括:
获取所述日志切分参数,当系统时间满足所述日志切分节点时,在所述日志代理进程中,根据所述日志容量对所述运行记录信息进行切分,生成所述运行记录信息对应的至少一个日志子文件;
根据所述至少一个日志子文件,生成所述运行记录信息对应的所述运行日志文件,将所述运行日志文件备份在日志库中;所述运行日志文件包括所述至少一个日志子文件。
12.根据权利要求11所述的方法,其特征在于,还包括:
当检测到所述日志库中所包含的运行日志文件的数量大于数量阈值时,删除所述日志库中最小的日志切分节点所对应的运行日志文件,直至所述日志库中所包含的运行日志文件的数量小于或等于所述数量阈值。
13.一种进程日志处理装置,其特征在于,包括:
分发模块,用于接收业务处理请求,通过主进程将所述业务处理请求分发至工作进程,在所述主进程中生成分发记录信息,通过所述主进程与日志代理进程之间的进程间通信通道,将所述分发记录信息传输至所述日志代理进程,通过所述日志代理进程将所述分发记录信息生成分发日志文件;所述主进程和所述工作进程为父子进程,所述主进程与所述工作进程之间的进程间通信通道是根据环境变量自动实现的;所述日志代理进程与所述主进程、所述工作进程均不是父子进程,所述日志代理进程与所述主进程、所述工作进程之间的进程间通信通道是按照约定实现的;所述工作进程和所述日志代理进程是由所述主进程直接启动的;
生成模块,用于通过所述工作进程执行与所述业务处理请求相关联的业务逻辑,生成所述业务处理请求对应的运行记录信息;
传输模块,用于通过所述工作进程与日志代理进程之间的进程间通信通道,将所述运行记录信息传输至所述日志代理进程,通过所述日志代理进程,将所述运行记录信息生成运行日志文件。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1至12中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010105142.XA CN111338893B (zh) | 2020-02-20 | 2020-02-20 | 进程日志处理方法、装置、计算机设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010105142.XA CN111338893B (zh) | 2020-02-20 | 2020-02-20 | 进程日志处理方法、装置、计算机设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338893A CN111338893A (zh) | 2020-06-26 |
CN111338893B true CN111338893B (zh) | 2023-07-18 |
Family
ID=71183884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010105142.XA Active CN111338893B (zh) | 2020-02-20 | 2020-02-20 | 进程日志处理方法、装置、计算机设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338893B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858077A (zh) * | 2020-07-15 | 2020-10-30 | 济南浪潮数据技术有限公司 | 一种存储系统中io请求日志的记录方法、装置及设备 |
CN112181902B (zh) * | 2020-11-30 | 2021-08-31 | 阿里云计算有限公司 | 数据库的存储方法、装置及电子设备 |
CN114915669A (zh) * | 2021-02-08 | 2022-08-16 | 北京金山云网络技术有限公司 | 一种基于quic协议的服务升级方法、装置及电子设备 |
CN115174544A (zh) * | 2021-04-02 | 2022-10-11 | 京东科技控股股份有限公司 | 一种日志获取方法、装置、设备、介质 |
CN113961534B (zh) * | 2021-12-21 | 2022-05-10 | 荣耀终端有限公司 | 生成日志文件的方法和电子设备 |
CN114466064A (zh) * | 2021-12-31 | 2022-05-10 | 航天银山电气有限公司 | 变电站网络安全代理方法、装置及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1955159A2 (en) * | 2005-11-12 | 2008-08-13 | Logrhythm, Inc. | Log collection, structuring and processing |
CN103198007A (zh) * | 2012-01-06 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 多进程的日志输出方法及系统 |
CN105763634A (zh) * | 2016-04-14 | 2016-07-13 | 北京思特奇信息技术股份有限公司 | 一种基于tcp长连接的服务实现方法和装置 |
CN109471743A (zh) * | 2018-11-12 | 2019-03-15 | 深圳前海微众银行股份有限公司 | 日志收集方法、装置及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011034552A (ja) * | 2009-07-07 | 2011-02-17 | Ricoh Co Ltd | 情報処理装置、情報処理方法および情報処理プログラム |
CN101630272B (zh) * | 2009-08-19 | 2013-03-27 | 用友软件股份有限公司 | 进程调度方法和系统 |
CN103179162B (zh) * | 2011-12-23 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 一种输出日志的方法及系统 |
CN107133086B (zh) * | 2016-02-29 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 基于分布式系统的任务处理方法、装置和系统 |
CN109299052B (zh) * | 2018-09-03 | 2024-03-15 | 珠海泰合科技有限公司 | 日志切割方法、装置、计算机设备及存储介质 |
-
2020
- 2020-02-20 CN CN202010105142.XA patent/CN111338893B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1955159A2 (en) * | 2005-11-12 | 2008-08-13 | Logrhythm, Inc. | Log collection, structuring and processing |
CN103198007A (zh) * | 2012-01-06 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 多进程的日志输出方法及系统 |
CN105763634A (zh) * | 2016-04-14 | 2016-07-13 | 北京思特奇信息技术股份有限公司 | 一种基于tcp长连接的服务实现方法和装置 |
CN109471743A (zh) * | 2018-11-12 | 2019-03-15 | 深圳前海微众银行股份有限公司 | 日志收集方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111338893A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338893B (zh) | 进程日志处理方法、装置、计算机设备以及存储介质 | |
CN109491776B (zh) | 任务编排方法和系统 | |
CN1988535B (zh) | 文件存储同步方法、系统及客户端 | |
CN110971655B (zh) | 离线客户端重放和同步 | |
CN105049504B (zh) | 一种大数据中转传输同步及存储方法 | |
CN107741852B (zh) | 一种基于集群软件的服务部署方法 | |
CN100512158C (zh) | 网络测量体系结构及其实现测量的方法 | |
CN110519127B (zh) | 网络延时的探测方法、装置和存储介质 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN112416512A (zh) | 一种镜像构建方法、服务器、客户机、存储介质及系统 | |
US10318385B2 (en) | Service recovery using snapshots and interservice messages | |
CN113411363A (zh) | 一种镜像文件的上传方法、相关设备及计算机存储介质 | |
CN111104336A (zh) | 一种基于容器和vnc的服务接口在线测试方法及装置 | |
CN115996230B (zh) | 跨云数据同步方法、装置、计算机设备及可读存储介质 | |
CN110555064A (zh) | 用于保险业务的数据服务系统及方法 | |
CN117194562A (zh) | 数据同步方法和装置、电子设备和计算机可读介质 | |
CN111327680A (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN116455869A (zh) | 基于Kubernetes高效配置公网域名方法和系统 | |
CN106790521B (zh) | 采用基于ftp的节点设备进行分布式组网的系统及方法 | |
CN110417860A (zh) | 文件传输管理方法、装置、设备及存储介质 | |
CN112351106B (zh) | 一种含事件网格的服务网格平台及其通信方法 | |
CN116701452A (zh) | 数据处理方法、相关设备、存储介质及程序产品 | |
CN111176782B (zh) | 一种在线实验方法和装置 | |
CN106557530A (zh) | 业务系统、数据修复方法及装置 | |
CN111596953A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40023563 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |