CN110764962A - 日志处理方法和装置 - Google Patents
日志处理方法和装置 Download PDFInfo
- Publication number
- CN110764962A CN110764962A CN201810837277.8A CN201810837277A CN110764962A CN 110764962 A CN110764962 A CN 110764962A CN 201810837277 A CN201810837277 A CN 201810837277A CN 110764962 A CN110764962 A CN 110764962A
- Authority
- CN
- China
- Prior art keywords
- log
- application layer
- layer log
- buffer
- application
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 86
- 239000000872 buffer Substances 0.000 claims description 211
- 230000006870 function Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 26
- 230000002159 abnormal effect Effects 0.000 claims description 23
- 238000012216 screening Methods 0.000 claims description 15
- 238000007639 printing Methods 0.000 claims description 12
- 230000000903 blocking effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- 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
技术领域
本公开涉及计算机技术领域,特别涉及一种日志处理方法和装置。
背景技术
日志是记录系统运行状况的主要数据,日志所记录的信息对于排查和分析系统关键信息,优化系统的性能起着重要作用。
目前,在一些嵌入式系统中,例如Linux系统,日志分为内核层日志和应用层日志,内核层日志和应用层日志通常是分开管理的。对于内核层日志,通常存放在设置于动态随机存取存储器(Dynamic Random Access Memory,DRAM)中的内核缓冲区中。对于应用层日志,应用层会创建一个日志守护进程,日志守护进程将应用层日志写入套接字(socket)缓存,再通过日志读取进程将socket缓存中的应用层日志读出,存储到目标设备。
在大多数情况下,应用层异常时的内核日志对定位问题有着重要的指导性作用,开发人员需要以时间戳顺序追溯应用层和内核层日志,确认问题发生现场和过程。在应用层日志和内核层日志分开管理的情况下,开发人员需要先连接串口设备以保存内核层日志,然后同时查看串口设备中的内核层日志和目标设备中的应用层日志,两边对照分析,十分不便。
发明内容
本公开提供了一种日志处理方法和装置,以便于开发人员统一管理和查看内核层日志和应用层日志。所述技术方案如下:
一方面,提供了一种日志处理方法,该方法包括:获取应用层日志;将所述应用层日志传输至内核层;将所述内核层中的内核层日志和所述应用层日志输出至目标存储介质。
可选地,所述获取应用层日志,包括:采用应用层日志输出函数获取应用层日志;和/或,通过重定向方式获取输出至标准输出/标准错误的应用层日志。
可选地,所述通过重定向方式获取输出至标准输出/标准错误的应用层日志,包括:通过伪终端获得输出至标准输出/标准错误的应用层日志。
可选地,所述内核层中设有内核层日志缓冲区和至少一个应用层日志缓冲区。所述将所述应用层日志传输至内核层,包括:将所述应用层日志存储至目标缓冲区,所述目标缓冲区为所述内核层日志缓冲区或所述应用层日志缓冲区。
在一种可能的实施方式中,所述目标缓冲区为所述应用层日志缓冲区,所述将所述应用层日志存储至目标缓冲区,包括:对所述应用层日志进行格式化处理;将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区。
可选地,所述将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区,包括:调用应用层日志虚拟传输设备,将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区。
在另一种可能的实施方式中,所述目标缓冲区为所述内核层日志缓冲区,所述将所述应用层日志存储至目标缓冲区,包括:通过系统调用将所述应用层日志存储至所述内核层日志缓冲区。
可选地,所述内核层中设有至少两个应用层日志缓冲区,不同的应用层日志缓冲区用于存储不同的应用模块的日志。
可选地,所述将所述内核层中的内核层日志和所述应用层日志输出至目标存储介质,包括:对所述内核层中的内核层日志和所述应用层日志进行筛选;将筛选后的所述内核层日志和所述应用层日志输出至目标存储介质。
可选地,所述方法还包括:获取配置信息;根据所述配置信息确定所述目标存储介质。
可选地,所述配置信息用于指示所述目标存储介质为外部存储设备;所述根据所述配置信息确定所述目标存储介质,包括:检测是否存在外部存储设备;当存在外部存储设备时,将所述外部存储设备确定为目标存储介质;当不存在外部存储设备时,将内存确定为目标存储介质。
可选地,所述内核层中还设有备份缓冲区,所述方法还包括:当应用层异常时,将所述应用层日志缓冲区中的应用层日志备份至所述备份缓冲区。
可选地,所述方法还包括:通过备份日志输出接口,将所述备份缓冲区中的应用层日志输出至显示设备。
另一方面,提供了一种日志处理装置,该装置包括:
日志获取模块,用于获取应用层日志;
日志传输模块,用于将所述日志获取模块获取到的所述应用层日志传输至内核层;
日志输出模块,用于将所述内核层中的内核层日志和所述应用层日志输出至目标存储介质。
可选地,所述日志获取模块,包括:
日志打印模块,用于采用应用层日志输出函数获取应用层日志;和/或,
重定向模块,用于通过重定向方式获取输出至标准输出/标准错误的应用层日志。
可选地,所述重定向模块用于通过伪终端获得输出至标准输出/标准错误的应用层日志。
可选地,所述内核层中设有内核层日志缓冲区和至少一个应用层日志缓冲区;所述日志传输模块,用于将所述应用层日志存储至目标缓冲区,所述目标缓冲区为所述内核层日志缓冲区或所述应用层日志缓冲区。
可选地,当所述目标缓冲区为所述应用层日志缓冲区时,所述日志传输模块用于对所述应用层日志进行格式化处理;将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区。
可选地,所述日志传输模块用于调用应用层日志虚拟传输设备,将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区。
可选地,当所述目标缓冲区为所述内核层日志缓冲区时,所述日志传输模块用于通过系统调用将所述应用层日志存储至所述内核层日志缓冲区。
可选地,所述内核层中设有至少两个应用层日志缓冲区,不同的应用层日志缓冲区用于存储不同的应用模块的日志。
可选地,所述日志输出模块,用于对所述内核层中的内核层日志和所述应用层日志进行筛选;将筛选后的所述内核层日志和所述应用层日志输出至目标存储介质。
可选地,所述装置还包括:
配置信息获取模块,用于获取配置信息;
目标存储介质确定模块,用于根据所述配置信息确定所述目标存储介质。
可选地,所述配置信息用于指示所述目标存储介质为外部存储设备;
所述目标存储介质确定模块,用于检测是否存在外部存储设备;当存在外部存储设备时,将所述外部存储设备确定为目标存储介质;当不存在外部存储设备时,将内存确定为目标存储介质。
可选地,所述内核层中还设有备份缓冲区,所述装置还包括:
备份模块,用于当应用层异常时,将所述应用层日志缓冲区中的应用层日志备份至所述备份缓冲区。
可选地,所述装置还包括:
备份日志输出模块,用于通过备份日志输出接口,将所述备份缓冲区中的应用层日志输出至显示设备。
另一方面,提供了一种日志处理装置,所述装置包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现前述日志处理方法。
另一方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现前述日志处理方法。
本公开实施例提供的技术方案至少包括以下有益效果:
本公开通过将应用层日志先传输至内核层,然后再与内核层日志一起输出至目标存储介质,以便于应用层日志和内核层日志的统一管理,且查看较为方便。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1示出了本公开一个实施例提供的日志处理方法的流程图;
图2示出了本公开一个实施例提供的日志处理方法的流程图;
图3示出了本公开一个实施例中创建应用层日志虚拟传输设备的详细流程图;
图4示出了本公开一个实施例中日志描述符的结构关系;
图5示出了本公开一个实施例中通过重定向方式获取应用层日志的详细流程图;
图6示出了本公开一个实施例中应用层日志的结构;
图7示出了本公开一个实施例中将应用层日志传输至应用层日志缓冲区的详细流程图;
图8示出了本公开一个实施例中将应用层日志和内核层日志输出至目标存储介质的详细流程图;
图9示出了本公开一个实施例中确定目标存储介质的流程图;
图10示出了本公开一个实施例提供的日志处理装置的结构框图;
图11示出了本公开一个实施例提供的日志处理装置的结构框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
在对本公开进行详细的解释说明之前,先对本公开涉及的应用场景及相关技术予以介绍。
本公开适用于对嵌入式系统的日志进行处理,例如Linux系统等由Unix系统演变而成的系统(可以称为类Unix系统)。对于嵌入式系统而言,通常包括内核态和用户态。在本实施例中,内核态产生的日志,可以被称为内核层日志,用户态产生的日志,可以被称为应用层日志。为了便于对应用层日志和内核层日志进行统一管理,本公开提供了一种日志处理方法和装置。
参见图1,其示出了本公开一个实施例提供的日志处理方法的流程图,该方法包括:
步骤101:获取应用层日志。
步骤102:将获取到的应用层日志传输至内核层。
步骤103:将内核层中的内核层日志和应用层日志输出至目标存储介质。
在本公开实施例中,目标存储介质可以为内部存储介质,例如闪存(Flash)等,也可以为外部存储介质,例如磁盘等。其中,Flash和磁盘均为非易失性存储介质,当目标存储介质为非易失性存储介质时,有利于长久保存内核层日志和应用层日志,避免掉电或系统重启导致的内核层中的内核层日志和应用层日志的丢失。
本公开实施例通过将应用层日志先传输至内核层,然后再与内核层日志一起输出至目标存储介质,以便于应用层日志和内核层日志的统一管理,且查看较为方便。
参见图2,其示出了本公开一个实施例提供的日志处理方法的流程图,该方法包括:
步骤201:在内核层中创建应用层日志缓冲区。
在本实施例中,应用层日志缓冲区可以由内核驱动负责创建。在应用层日志缓冲区创建完成后,内核层中设有内核层日志缓冲区和应用层日志缓冲区。
在本公开实施例中,应用层日志缓冲区和内核层日志缓冲区均可以为环形缓冲区(ring buffer),采用环形缓冲区存储应用层日志和内核层日志,可以避免数据溢出。需要说明的是,对于环形缓冲区而言,每次写入日志之前,都需要先对环形缓冲区的剩余空间和待写入的日志长度进行比较,超过环形缓冲区剩余空间大小的日志会循环覆盖到环形缓冲区头部。此外,每次读取日志之前,也需要先对环形缓冲区的剩余空间和待读取的日志长度进行比较,超过环形缓冲区剩余空间大小的日志需要从环形缓冲区头部读取。
可选地,应用层日志缓冲区可以有一个或者多个。不同的应用层日志缓冲区存储不同的应用模块(即应用层功能模块)的日志。通过设置多个应用层日志缓冲区,可以降低采用一个应用层日志缓冲区存储所有应用层日志时,应用层日志缓冲区中已有的应用层日志被覆盖的几率。
在本实施例中,应用层日志缓冲区设有2个,分别为基础模块缓冲区和业务模块缓冲区。基础模块缓冲区用于存储应用层基础模块的日志,应用层基础模块为保证应用层正常运行的核心功能模块的集合。业务模块缓冲区用于存储应用层业务模块的日志,应用层业务模块为根据业务需要实现的功能模块的集合。采用这种分类方式,可以避免出现在采用一个应用层日志缓冲区存储所有应用层日志时会出现的低重要性的应用层日志覆盖高重要性的应用层日志的情况。
在其他实施例中,还可以根据应用层业务模块的重要程度或者优先级别,将不同的应用层业务模块的日志存储到不同的应用层日志缓冲区中,从而划分出更多数量的应用层日志缓冲区。例如,将网络模块的日志存储到第一应用层日志缓冲区,将除网络模块以外的应用层业务模块的日志存储到第二应用层日志缓冲区。应用层业务模块的重要程度或者优先级别可以预先配置。
每个应用层日志缓冲区的容量可以为默认值,例如256Kbyte,也可以根据需要配置,例如配置为512Kbyte。配置应用层日志缓冲区的容量可以通过修改bootargs参数实现。bootargs参数为Linux内核启动参数。由于常规应用层的用于存储应用层日志的缓冲区(例如socket缓存)的容量较小,通常小于100Kbyte,因此容易出现数据溢出的问题,而在本实施例中,内核层中的单个应用层日志缓冲区的容量可以设置地较大,因此,可以有效避免应用层日志存储时出现数据溢出的问题,降低应用层日志丢失的风险。
在本实施例中,每个应用层日志缓冲区可以占用非连续内存,以减少系统开销。
步骤202:为应用层日志缓冲区创建应用层日志虚拟传输设备。
在本实施例中,应用层日志虚拟传输设备为驱动层的一个虚拟设备,例如可以为杂项(misc)设备。该步骤202也可以由内核驱动实现。
图3示出了本公开实施例中创建应用层日志虚拟传输设备的详细流程。参见图3,该步骤202可以包括以下步骤:
202a、为每个应用层日志缓冲区构造一个日志描述符。
在本实施例中,日志描述符为一种数据结构,每个日志描述符包括用于关联misc设备、写指针和读者链表的字段,还可以包括缓冲区长度等。需要说明的是,在构造描述符之前,需要先申请用于保存日志描述符的内存。
该步骤202a还可以包括:将各个应用层日志缓冲区对应的日志描述符添加到全局链表中,以便于后续步骤中可以通过全局链表查找到各个应用层日志缓冲区对应的日志描述符。
日志描述符的结构如图4所示,参见图4,每个日志描述符指向一个读者链表、一个应用层日志缓冲区和一个misc设备。
202b、实现misc设备的文件操作(file_operation)的打开(open)接口、读(read)接口和写(write)接口。
该open接口用来打开其所属的misc设备,以便通过misc设备找到对应的日志描述符,进而通过找到的日志描述符找到对应的应用层日志缓冲区。对于写日志的操作,该open接口会将日志描述符与misc设备的文件描述符关联;对于读日志的操作,则该open接口会创建一个读者,添加到日志描述符的读者链表,并将读者保存到misc设备的文件描述符。
read接口用于读取应用层日志缓冲区中新写入的日志,write接口用于将来自用户空间的数据写入应用层日志缓冲区。
202c、注册misc设备。
注册完成后,应用层可以通过访问misc设备访问应用层日志缓冲区,将应用层日志写入应用层日志缓冲区或者从应用层日志缓冲区读取已写入的应用层日志。
上述步骤201和202为可选步骤,通常在系统首次运行时或者需要更改系统配置时执行,而无需在每次日志存储时执行。
步骤203:获取应用层日志。
在本实施例中,应用层日志除了包括操作系统以及操作系统中安装的应用程序运行产生的日志以外,还可以包括操作系统以外的第三方库或第三方执行脚本执行所产生的日志。
对于操作系统以及操作系统中安装的应用程序运行产生的日志,该步骤203可以包括:采用应用层日志输出函数获取应用层日志。该应用层日志输出函数为新增函数,操作系统以及操作系统中安装的应用程序可以调用该应用层日志输出函数,通过该应用层日志输出函数调用应用层日志虚拟传输设备,从而将日志写入应用层日志缓冲区。
对于操作系统以外的第三方库或第三方执行脚本执行所产生的日志,该步骤203可以包括:通过重定向方式获取输出至标准输出/标准错误的应用层日志。
在本实施例中,通过重定向方式获取输出至标准输出/标准错误的应用层日志,可以通过伪终端实现。通过伪终端来获取输出至标准输出/标准错误的应用层日志,实现可靠。可选地,也可以通过socket通信或者共享内存的方式来实现通过重定向方式获取输出至标准输出/标准错误的应用层日志。
在本实施例中,采用伪终端获得输出至标准输出/标准错误的应用层日志的过程可以参见图5。如图5所示,该过程可以包括以下步骤:
301、重定向进程打开伪终端主设备/dev/ptmx。
302、重定向进程设置主设备的进程访问权限,以使得其他进程无法访问该伪,并通过伪终端主设备的文件描述符找到对应的伪终端从设备路径后,打开伪终端从设备。
303、重定向进程通过fork系统调用创建子进程,此时,原先的重定向进程即为父进程。
然后,父进程和子进程分别执行以下步骤:
304、判断当前是子进程或父进程;若为子进程,则执行步骤305a~307a;若为父进程,则执行步骤305b~310b。
305a、子进程关闭伪终端主设备。
306a、将标准输出/标准错误的文件描述符重定向到伪终端从设备上。
例如,可以通过exec系统调用执行脚本或者包含第三方库的可执行文件,子进程对标准输出/标准错误的写操作被重定向到伪终端从设备。
307a、子进程关闭伪终端从设备。
308a、执行子进程。
通过执行子进程,写入伪终端从设备的日志通过管道传递到伪终端主设备,至此,父进程可以通过伪终端主设备获取到输出至标准输出/标准错误的应用层日志。
305b、父进程关闭伪终端从设备。
306b、父进程循环监测伪终端主设备的状态,以确定是否有数据可读。
307b、当父进程监测到有数据可读时,读取应用层日志,并写入目标缓冲区(具体写入方式参见下述步骤204)。
308b、监测是否出现由于子进程退出导致设备出错挂起;若出现由于子进程退出导致设备出错挂起,则关闭伪终端;若没有出现由于子进程退出导致设备出错挂起,则继续执行步骤306b。
需要说明的是,上述重定向进程为应用层进程。
步骤204:将应用层日志传输至内核层中的目标缓冲区。
其中,目标缓冲区可以为应用层日志缓冲区,也可以为内核层日志缓冲区。也就是说,在实施例中,部分应用层日志存储在应用层日志缓冲区,而部分应用层日志可以存储至内核层日志缓冲区。这是由于内核层日志缓冲区中的日志通常实时输出至显示设备上,将部分较为重要的应用层日志存储至内核层日志缓冲区,可以便于开发人员及时查看。
在本实施例中,存储至内核层日志缓冲区中的应用层日志,其优先级为内核层日志中能够实时输出的优先级中的最低优先级,这样,这部分应用层日志能够实时显示以便开发人员及时查看,又不至于优先级设置得过高影响开发人员的判断,对开发人员造成困扰。示例性地,在本实施例中,默认优先级可以为信息(Info)。其中,实时显示内核层日志缓冲区中日志可以通过调用printk函数将内核层日志缓冲区中日志打印到串口实现。
当目标缓冲区为内核层日志缓冲区时,该步骤204可以包括:
通过系统调用将应用层日志存储至内核层日志缓冲区。在本实施例中,内核层中对应内核层日志缓冲区设有字符设备,通过该字符设备的系统调用将应用层日志存储至内核层日志缓冲区。该字符设备的系统调用为该字符设备的write接口。
当目标缓冲区为应用层日志缓冲区时,该步骤204可以包括:对应用层日志进行格式化处理;将格式化处理后的应用层日志存储至应用层日志缓冲区。
在本实施例中,在将应用层日志存储至应用层日志缓冲区之前,需要将应用层日志转换为统一的格式,例如,图6所示的格式。如图6所示,格式转换后的每条应用层日志均包括日志头61和日志内容62两部分,其中日志头61包括日志的总长度、所属的进程号、线程号、时间戳、优先级以及日志标签。每条应用层日志的最大长度一般不超过一个页的大小,一般为4Kbyte。其中,时间戳用于指示应用层日志产生的时间。优先级可以根据实际需要设置,示例性地,可以包括致命(Fatal)、错误(Error)、警告(Warning)、信息(Info)、调试(Debug)、冗余(Verbose)。日志标签用于指示该条日志所属的应用程序,即产生该条日志的应用程序,例如可以为应用程序的名称。
进一步地,可以先对应用层日志进行格式化处理,并通过应用层日志虚拟传输设备将格式化处理后的应用层日志存储至应用层日志缓冲区。
如前所述,在本实施例中,应用层日志虚拟传输设备为misc设备,参见图7,通过misc设备将应用层日志传输至应用层日志缓冲区可以采用如下步骤。
701:调用日志打印模块的打印接口。
在本实施例中,日志打印模块的打印接口即前述日志输出函数。由于设置有两个应用层日志缓冲区,分别对应应用层基础模块和应用层业务模块,因此,还需要在打印接口中指定应用模块类型(即是应用层基础模块还是应用层业务模块),以便于根据应用模块类型确定对应的misc设备。
702:打开misc设备。
该打印接口可以调用misc设备的open接口,从而打开misc设备。
703:通过系统调用写misc设备,即调用misc设备的写接口。
704:从全局链表中获取日志描述符,初始化日志头。
内核层misc设备的写接口被调用,从全局链表中获取日志描述符,读取系统时间、进程号(Process ID,PID)、日志所属标签以及日志优先级等信息初始化一个日志头。
705:更新日志描述符上的读者指针。
即在进行写操作之前,先保存当前的读者指针。这是由于写操作可能打断了一个正在执行的读者,通过在写操作之前先保存读者指针,可以在写操作完成后可以唤醒被打断的读者,继续完成当前的读者操作。
706:将日志头与待写入日志合并,构成应用层日志,并将应用层日志写入应用层日志缓冲区。
707:唤醒被打断的读者。
当通过重定向方式获取应用层日志时,由重定向进程调用日志打印模块的打印接口。当通过应用层日志输出函数获取应用层日志时,由用户态应用程序调用日志打印模块的打印接口。
需要说明的是,在本实施例中,由于通过重定向方式获取的是操作系统以外的第三方库或第三方执行脚本执行所产生的日志,这些日志属于应用层基础模块的日志,可以一部分存储于基础模块缓冲区中,另一部分存储于内核层日志缓冲区中。而在其他实施例中,也可以全部存储于基础模块缓冲区中。
此外,需要存储到内核层日志缓冲区的应用层日志可以预先配置,例如可以根据应用层日志的大小和应用层日志对系统运行的重要程度来设置。
步骤205:将内核层中的应用层日志和内核层日志输出至目标存储介质。在一种可能的实施方式中,该步骤205包括:
对存储在内核层中的应用层日志和内核层日志进行筛选;
将筛选后的应用层日志和内核层日志存储至目标存储介质。
当然,也可以不对存储在内核层中的应用层日志和内核层日志进行筛选,而直接将存储在内核层中的应用层日志和内核层日志存储至目标存储介质。
可选地,日志筛选条件可以根据实际需要设置,例如,可以为预设时间范围、预设优先级、预设进程号和预设日志标签中的至少一种。
相应地,可以将日志头中的信息与筛选条件进行对比,当日志头中的信息与筛选条件相同或者位于筛选条件所限定的范围内时,可以确定日志满足筛选条件。例如,当日志头中的时间戳所指示的时间落入预设时间范围内,或者,当日志头中的优先级与预设的优先级相同,或者,日志头中的日志标签为预设的应用程序的名称,或者,日志头中的进程号为预设进程号,或者,日志头中的进程号为预设进程号且日志头中的时间戳所指示的时间落入预设时间范围内,等等,确定日志满足筛选条件。
其中,目标存储介质可以为非易失性存储介质或易失性存储介质。非易失性存储介质包括但不限于外部磁盘和内部闪存(Flash),易失性存储介质包括但不限于内存,例如DRAM。
筛选后的应用层日志和内核层日志可以以日志文件的形式存储于目标存储介质中。不同的目标存储介质对应不同大小的日志文件,例如,磁盘和Flash对应的日志文件大小可以为50M或100M,内存对应的日志文件大小为1M。
可选地,目标存储介质中的日志可以按照时间戳顺序存储,这样,某一时刻系统状态一目了然,便于应用层日志和内核层日志的协同分析。当然,目标存储介质中的日志也可以按照进程或者日志标签等排序,排序方式可以根据实际需要设置。
在本实施例中,可以调用日志输出函数读取内核层中的应用层日志和内核层日志。进一步地,可以调用日志输出函数通过系统调用(前述misc设备的read接口)读取应用层日志缓冲区中的日志,或者,调用日志输出函数通过系统调用(前述字符设备的read接口)读取内核层日志缓冲区中的日志。对读取出的日志进行筛选后,将筛选后的日志输出至目标存储介质。
图8以将内核层中的应用层日志输出至目标存储介质的过程为例进行了详细描述,将内核层中的内核层日志输出至目标存储介质的过程与图8所示流程类似,在此省略详细描述。图8所示流程可以通过日志管理进程实现,日志管理进程为应用层进程。如图8所示,该步骤205可以包括:
801:设置日志筛选条件。
该步骤801为可选步骤,可以设置日志筛选条件,后续步骤中仅将符合日志筛选条件的应用层日志输出至目标存储介质,也可以不设置日志筛选条件,而将所有的应用层日志都输出至目标存储介质。
802:打开misc设备。
803:通过select函数监测misc设备的文件描述符。
其中,一个select函数可以监测一个或多个misc设备的文件描述符。
804:select函数正常返回,读取应用层日志缓冲区中的新日志,执行步骤806。
其中,select函数正常返回表示有新日志写入,可以读取。
805:select函数异常返回,则返回步骤803;
其中,select函数异常返回包括select函数出错或超时返回,select函数出错表示系统有其他原因导致中断,select函数超时返回表示在设定时间内没有新数据写入。
806:判断目标存储路径对应的日志文件是否被删除;若目标存储路径对应的日志文件没有被删除,则执行步骤807a;若目标存储路径对应的日志文件已被删除,则执行步骤807b;
807a:将读取到的日志存储至目标存储路径对应的日志文件;
807b:重新在该目标存储路径新建一个日志文件,将读取到的日志存储至新建的日志文件。
若步骤801中设置有日志筛选条件时,在步骤806之前,还包括判断读取到的日志是否符合日志筛选条件,若符合,则执行步骤806,若不符合,则丢弃读取到的日志。
808:判断是否以阻塞方式读;若以阻塞方式读,返回步骤803;若不是以阻塞方式读,则退出当前流程。
其中,阻塞方式读是指,若当前将缓冲区中的日志已读完,如果没有新的日志写入该缓冲区,则挂起,直至有新的日志写入后再执行读操作。
实际应用中,可以根据读方式设置信息来确定是否以阻塞方式读。例如,可以该读方式设置信息可以默认指示以阻塞方式读,当开发人员需要进行开发测试时,可以将读方式设置信息修改为指示不以阻塞方式读。
按照步骤803~步骤808即可逐条日志读应用层日志缓冲区,直至当前应用层日志缓冲区中所有日志均读完。
需要说明的是,可以同时启动多个日志管理进程,不同的日志管理进程对应不同的筛选条件。例如,可以在开机阶段通过服务启动一个,后续在在线调试时,由开发人员手动启动一个或多个,这样,开发人员可以在后期在线调试时,根据实际需要手动设置日志筛选条件对输出日志进行处理,提高调试效率。
可选地,在本实施例中,内核层中还设有备份缓冲区,相应地,该方法还可以包括:当应用层异常时,将应用层日志缓冲区中存储的应用层日志备份至备份缓冲区。备份缓冲区的容量可以较小,示例性地,可以为200Kbyte,只要足够关键信息即可。由于当应用层异常时,会产生异常日志,并将异常日志存储至对应的应用层日志缓冲区中,因此,在应用层异常时备份至备份缓冲区的日志包含了应用层异常日志。
其中,应用层是否异常,可以根据应用层日志缓冲区中存储的应用层日志来判断。则该方法还可以包括步骤206~207。
步骤206:在每次在应用层日志缓冲区中写入应用层日志之前,根据应用层日志缓冲区中存储的应用层日志判断是否需要进行备份;当需要进行备份时,执行步骤207;当不需要进行备份时或者备份完成后,执行步骤203,即将应用层日志写入应用层日志缓冲区。
步骤207:将应用层日志缓冲区中的应用层日志备份至备份缓冲区。
示例性地,若当前待写入的应用层日志需要循环覆盖应用层日志缓冲区,且该应用层日志缓冲区包含异常发生现场日志,则表示需要进行备份;若当前待写入的应用层日志不需要循环覆盖应用层日志缓冲区,或者该应用层日志缓冲区没有包含异常发生现场日志,则表示不需要进行备份。其中,异常发生现场日志,是指在应用层日志缓冲区中存在异常日志,该异常日志并非位于环形缓冲区的头部且该异常日志到环形缓冲区的头部的日志中存在正常日志,并且在当前待写入的应用层日志之前写入的一条应用层日志到该异常日志之间的应用程序日志均为异常日志,其中,异常日志包括前述致命(Fatal)、错误(Error)、警告(Warning)的应用层日志。
可选地,本实施例的方法还可以包括查看备份日志的步骤,即还可以包括步骤208:通过备份日志输出接口,将备份缓冲区中的应用层日志输出至显示设备。
示例性地,备份日志输出接口可以为proc接口。开发人员通过输入命令调用该proc接口,使得备份缓冲区中的应用层日志显示到屏幕上,以便于及时确定出异常时刻的关键信息。
可选地,该方法还可以包括:
获取配置信息;
根据配置信息确定目标存储介质。
其中,配置信息用于指示目标存储介质为外部存储设备,例如磁盘,或者为内部存储设备,例如Flash或内存。
若配置信息用于指示目标存储介质为外部存储设备;则根据配置信息确定目标存储介质,可以包括:
检测是否存在外部存储设备;
当存在外部存储设备时,将外部存储设备确定为目标存储介质;
当不存在外部存储设备时,将内存确定为目标存储介质。
在本实施例中,目标存储介质包括磁盘、Flash和内存三种,分别对应三种存储路径。示例性地,可以按照图9所示流程确定目标存储介质。图9所示流程可以在系统启动阶段由初始化(init)进程加载运行,并在运行完成后,通过fork/exec系统调用创建子进程,即前述日志管理进程。参见图9,确定目标存储介质,可以包括以下步骤:
901:设置运行参数。
902:根据运行参数判断是否将日志存储到内存;若是,则执行步骤903;若否,则执行步骤904。
903:设置存储路径为内存,即将内存作为目标存储介质。
904:根据运行参数判断是否将日志存储到Flash;若是,则执行步骤905;若否,则执行步骤906。
905:设置存储路径为Flash,即将Flash作为目标存储介质。
906:磁盘挂载检查,若有磁盘挂载,则执行步骤907;若没有磁盘挂载,则执行步骤903。
907:设置存储路径为磁盘,即将磁盘作为目标存储介质。
通过图9所示流程,开发人员可以根据实际需要,通过运行参数来修改目标存储介质。
下述为本公开装置实施例,对于装置实施例中未详尽描述的细节,可以参考上述方法实施例。
请参考图10,其示出了本公开一个实施例提供的日志处理装置1000的结构框图。该装置包括:日志获取模块1010、日志传输模块1020和日志输出模块1030。日志获取模块1010用于获取应用层日志。日志传输模块1020用于将日志获取模块1010获取到的应用层日志传输至内核层。日志输出模块1030用于将内核层中的内核层日志和应用层日志输出至目标存储介质。
可选地,日志获取模块1010包括:日志打印模块1011和重定向模块1012。其中,日志打印模块1011用于采用应用层日志输出函数获取应用层日志;重定向模块1012用于通过重定向方式获取输出至标准输出/标准错误的应用层日志。
可选地,重定向模块1012用于通过伪终端获得输出至标准输出/标准错误的应用层日志。
可选地,内核层中设有内核层日志缓冲区和至少一个应用层日志缓冲区;日志传输模块1020用于将应用层日志存储至目标缓冲区,该目标缓冲区为内核层日志缓冲区或应用层日志缓冲区。
可选地,当目标缓冲区为所述应用层日志缓冲区时,日志传输模块1020用于对应用层日志进行格式化处理;将格式化处理后的应用层日志存储至应用层日志缓冲区。
可选地,日志传输模块1020用于调用应用层日志虚拟传输设备,将格式化处理后的应用层日志存储至应用层日志缓冲区。
可选地,当目标缓冲区为内核层日志缓冲区时,日志传输模块1020用于通过系统调用将应用层日志存储至内核层日志缓冲区。
可选地,内核层中设有至少两个应用层日志缓冲区,不同的应用层日志缓冲区用于存储不同的应用模块的日志。
可选地,日志输出模块1030用于对内核层中的内核层日志和应用层日志进行筛选;将筛选后的内核层日志和应用层日志输出至目标存储介质。
可选地,所述装置还包括:配置信息获取模块1040和目标存储介质确定模块1050。配置信息获取模块1040用于获取配置信息;目标存储介质确定模块1050用于根据配置信息确定所述目标存储介质。
可选地,配置信息用于指示所述目标存储介质为外部存储设备。目标存储介质确定模块1050,用于检测是否存在外部存储设备;当存在外部存储设备时,将外部存储设备确定为目标存储介质;当不存在外部存储设备时,将内存确定为目标存储介质。
可选地,内核层中还设有备份缓冲区,所述装置还包括:备份模块1060。备份模块1060用于当应用层异常时,将应用层日志缓冲区中的应用层日志备份至所述备份缓冲区。
可选地,所述装置还包括:备份日志输出模块1070,备份日志输出模块1070用于通过备份日志输出接口,将备份缓冲区中的应用层日志输出至显示设备。
参见图11,其示出了本公开实施例提供的一种日志处理装置的结构示意图。该装置可能是服务器或者终端,具体来讲:
该装置1200包括中央处理单元(CPU)1201、包括随机存取存储器(RAM)1202和只读存储器(ROM)1203的系统存储器604,以及连接系统存储器1204和中央处理单元1201的系统总线1205。装置600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1206,和用于存储操作系统1213、应用程序614和其他程序模块1215的大容量存储设备1207。
基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。大容量存储设备1207及其相关联的计算机可读介质为装置600提供非易失性存储。也就是说,大容量存储设备1207可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本公开的各种实施例,装置1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即装置1200可以通过连接在系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行图1-9其中任一所提供的日志处理方法的指令。
本公开实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由日志处理装置的处理器执行时,使得日志处理装置能够执行图1-9其中任一提供的日志处理方法。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行进行图1-9其中任一提供的日志处理方法的指令。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
Claims (26)
1.一种日志处理方法,其特征在于,所述方法包括:
获取应用层日志;
将所述应用层日志传输至内核层;
将所述内核层中的内核层日志和所述应用层日志输出至目标存储介质。
2.根据权利要求1所述的方法,其特征在于,所述获取应用层日志,包括:
采用应用层日志输出函数获取应用层日志;和/或,
通过重定向方式获取输出至标准输出/标准错误的应用层日志。
3.根据权利要求2所述的方法,其特征在于,所述通过重定向方式获取输出至标准输出/标准错误的应用层日志,包括:
通过伪终端获得输出至标准输出/标准错误的应用层日志。
4.根据权利要求1所述的方法,其特征在于,所述内核层中设有内核层日志缓冲区和至少一个应用层日志缓冲区;
所述将所述应用层日志传输至内核层,包括:
将所述应用层日志存储至目标缓冲区,所述目标缓冲区为所述内核层日志缓冲区或所述应用层日志缓冲区。
5.根据权利要求4所述的方法,其特征在于,当所述目标缓冲区为所述应用层日志缓冲区时,所述将所述应用层日志存储至目标缓冲区,包括:
对所述应用层日志进行格式化处理;
将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区。
6.根据权利要求5所述的方法,其特征在于,所述将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区,包括:
调用应用层日志虚拟传输设备,将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区。
7.根据权利要求4所述的方法,其特征在于,当所述目标缓冲区为所述内核层日志缓冲区时,所述将所述应用层日志存储至目标缓冲区,包括:
通过系统调用将所述应用层日志存储至所述内核层日志缓冲区。
8.根据权利要求4所述的方法,其特征在于,所述内核层中设有至少两个应用层日志缓冲区,不同的应用层日志缓冲区用于存储不同的应用模块的日志。
9.根据权利要求1所述的方法,其特征在于,所述将所述内核层中的内核层日志和所述应用层日志输出至目标存储介质,包括:
对所述内核层中的内核层日志和所述应用层日志进行筛选;
将筛选后的所述内核层日志和所述应用层日志输出至目标存储介质。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:
获取配置信息;
根据所述配置信息确定所述目标存储介质。
11.根据权利要求10所述的方法,其特征在于,所述配置信息用于指示所述目标存储介质为外部存储设备;
所述根据所述配置信息确定所述目标存储介质,包括:
检测是否存在外部存储设备;
当存在外部存储设备时,将所述外部存储设备确定为目标存储介质;
当不存在外部存储设备时,将内存确定为目标存储介质。
12.根据权利要求1至9任一项所述的方法,其特征在于,所述内核层中还设有备份缓冲区,所述方法还包括:
当应用层异常时,将所述应用层日志缓冲区中的应用层日志备份至所述备份缓冲区。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
通过备份日志输出接口,将所述备份缓冲区中的应用层日志输出至显示设备。
14.一种日志处理装置,其特征在于,所述装置包括:
日志获取模块,用于获取应用层日志;
日志传输模块,用于将所述日志获取模块获取到的所述应用层日志传输至内核层;
日志输出模块,用于将所述内核层中的内核层日志和所述应用层日志输出至目标存储介质。
15.根据权利要求14所述的装置,其特征在于,所述日志获取模块,包括:
日志打印模块,用于采用应用层日志输出函数获取应用层日志;和/或,
重定向模块,用于通过重定向方式获取输出至标准输出/标准错误的应用层日志。
16.根据权利要求15所述的装置,其特征在于,所述重定向模块用于通过伪终端获得输出至标准输出/标准错误的应用层日志。
17.根据权利要求14所述的装置,其特征在于,所述内核层中设有内核层日志缓冲区和至少一个应用层日志缓冲区;
所述日志传输模块,用于将所述应用层日志存储至目标缓冲区,所述目标缓冲区为所述内核层日志缓冲区或所述应用层日志缓冲区。
18.根据权利要求17所述的装置,其特征在于,当所述目标缓冲区为所述应用层日志缓冲区时,所述日志传输模块用于对所述应用层日志进行格式化处理;将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区。
19.根据权利要求18所述的装置,其特征在于,所述日志传输模块用于调用应用层日志虚拟传输设备,将格式化处理后的所述应用层日志存储至所述应用层日志缓冲区。
20.根据权利要求17所述的装置,其特征在于,当所述目标缓冲区为所述内核层日志缓冲区时,所述日志传输模块用于通过系统调用将所述应用层日志存储至所述内核层日志缓冲区。
21.根据权利要求17所述的装置,其特征在于,所述内核层中设有至少两个应用层日志缓冲区,不同的应用层日志缓冲区用于存储不同的应用模块的日志。
22.根据权利要求14所述的装置,其特征在于,所述日志输出模块,用于对所述内核层中的内核层日志和所述应用层日志进行筛选;将筛选后的所述内核层日志和所述应用层日志输出至目标存储介质。
23.根据权利要求14所述的装置,其特征在于,所述装置还包括:
配置信息获取模块,用于获取配置信息;
目标存储介质确定模块,用于根据所述配置信息确定所述目标存储介质。
24.根据权利要求23所述的装置,其特征在于,所述配置信息用于指示所述目标存储介质为外部存储设备;
所述目标存储介质确定模块,用于检测是否存在外部存储设备;当存在外部存储设备时,将所述外部存储设备确定为目标存储介质;当不存在外部存储设备时,将内存确定为目标存储介质。
25.根据权利要求14所述的装置,其特征在于,所述内核层中还设有备份缓冲区,所述装置还包括:
备份模块,用于当应用层异常时,将所述应用层日志缓冲区中的应用层日志备份至所述备份缓冲区。
26.根据权利要求25所述的装置,其特征在于,所述装置还包括:
备份日志输出模块,用于通过备份日志输出接口,将所述备份缓冲区中的应用层日志输出至显示设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810837277.8A CN110764962B (zh) | 2018-07-26 | 2018-07-26 | 日志处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810837277.8A CN110764962B (zh) | 2018-07-26 | 2018-07-26 | 日志处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110764962A true CN110764962A (zh) | 2020-02-07 |
CN110764962B CN110764962B (zh) | 2024-02-20 |
Family
ID=69327018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810837277.8A Active CN110764962B (zh) | 2018-07-26 | 2018-07-26 | 日志处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110764962B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114035855A (zh) * | 2021-09-30 | 2022-02-11 | 鸣芯信息科技(上海)有限公司 | 固件的调试方法、装置、终端及存储介质 |
CN114124680A (zh) * | 2021-09-24 | 2022-03-01 | 绿盟科技集团股份有限公司 | 一种文件访问控制告警日志管理方法及装置 |
US11520681B2 (en) * | 2018-01-23 | 2022-12-06 | Amlogic (Shanghai) Co., Ltd. | System log collection method |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216800A (zh) * | 2008-01-02 | 2008-07-09 | 中兴通讯股份有限公司 | 一种linux日志的管理装置及方法 |
US20100228913A1 (en) * | 2009-03-06 | 2010-09-09 | Vmware, Inc. | Method for tracking changes in virtual disks |
CN102968366A (zh) * | 2012-11-30 | 2013-03-13 | 广东欧珀移动通信有限公司 | 一种蓝光播放器日志本地存储方法及装置 |
CN103176891A (zh) * | 2013-04-02 | 2013-06-26 | 浪潮电子信息产业股份有限公司 | 一种linux下利用内核模块与应用模块结合完成软件日志的方法 |
CN103577308A (zh) * | 2013-11-15 | 2014-02-12 | 惠州Tcl移动通信有限公司 | 移动设备的日志文件的获取方法 |
US20140129875A1 (en) * | 2012-11-08 | 2014-05-08 | Inventec Appliances (Pudong) Corporation | Method for reading kernel log upon kernel panic in operating system |
CN104461953A (zh) * | 2014-12-31 | 2015-03-25 | 厦门雅迅网络股份有限公司 | 通过虚拟串口进行liunx日志管理的方法和系统 |
CN105183622A (zh) * | 2015-08-25 | 2015-12-23 | 青岛海信移动通信技术股份有限公司 | 基于安卓系统的日志处理方法及装置 |
CN105225317A (zh) * | 2015-10-03 | 2016-01-06 | 上海大学 | 一种多路集中管理的网络门禁控制系统 |
US9760480B1 (en) * | 2013-11-01 | 2017-09-12 | Amazon Technologies, Inc. | Enhanced logging using non-volatile system memory |
-
2018
- 2018-07-26 CN CN201810837277.8A patent/CN110764962B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216800A (zh) * | 2008-01-02 | 2008-07-09 | 中兴通讯股份有限公司 | 一种linux日志的管理装置及方法 |
US20100228913A1 (en) * | 2009-03-06 | 2010-09-09 | Vmware, Inc. | Method for tracking changes in virtual disks |
US20140129875A1 (en) * | 2012-11-08 | 2014-05-08 | Inventec Appliances (Pudong) Corporation | Method for reading kernel log upon kernel panic in operating system |
CN103809989A (zh) * | 2012-11-08 | 2014-05-21 | 英华达(南京)科技有限公司 | 操作系统发生核心崩溃情况下读取完整核心日志的方法 |
CN102968366A (zh) * | 2012-11-30 | 2013-03-13 | 广东欧珀移动通信有限公司 | 一种蓝光播放器日志本地存储方法及装置 |
CN103176891A (zh) * | 2013-04-02 | 2013-06-26 | 浪潮电子信息产业股份有限公司 | 一种linux下利用内核模块与应用模块结合完成软件日志的方法 |
US9760480B1 (en) * | 2013-11-01 | 2017-09-12 | Amazon Technologies, Inc. | Enhanced logging using non-volatile system memory |
CN103577308A (zh) * | 2013-11-15 | 2014-02-12 | 惠州Tcl移动通信有限公司 | 移动设备的日志文件的获取方法 |
CN104461953A (zh) * | 2014-12-31 | 2015-03-25 | 厦门雅迅网络股份有限公司 | 通过虚拟串口进行liunx日志管理的方法和系统 |
CN105183622A (zh) * | 2015-08-25 | 2015-12-23 | 青岛海信移动通信技术股份有限公司 | 基于安卓系统的日志处理方法及装置 |
CN105225317A (zh) * | 2015-10-03 | 2016-01-06 | 上海大学 | 一种多路集中管理的网络门禁控制系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11520681B2 (en) * | 2018-01-23 | 2022-12-06 | Amlogic (Shanghai) Co., Ltd. | System log collection method |
CN114124680A (zh) * | 2021-09-24 | 2022-03-01 | 绿盟科技集团股份有限公司 | 一种文件访问控制告警日志管理方法及装置 |
CN114124680B (zh) * | 2021-09-24 | 2023-11-17 | 绿盟科技集团股份有限公司 | 一种文件访问控制告警日志管理方法及装置 |
CN114035855A (zh) * | 2021-09-30 | 2022-02-11 | 鸣芯信息科技(上海)有限公司 | 固件的调试方法、装置、终端及存储介质 |
CN114035855B (zh) * | 2021-09-30 | 2023-10-27 | 鸣芯信息科技(上海)有限公司 | 固件的调试方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110764962B (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8612389B2 (en) | Method and apparatus for discovering application configuration files in a system | |
US11392461B2 (en) | Method and apparatus for processing information | |
US7000150B1 (en) | Platform for computer process monitoring | |
US8601469B2 (en) | Method and system for customizing allocation statistics | |
US20080058961A1 (en) | Methods and arrangements to collect data | |
US9535754B1 (en) | Dynamic provisioning of computing resources | |
US11157373B2 (en) | Prioritized transfer of failure event log data | |
CN106649071B (zh) | 进程内部日志上报的方法和装置 | |
CN110764962B (zh) | 日志处理方法和装置 | |
CN111522703A (zh) | 监控访问请求的方法、设备和计算机程序产品 | |
WO2022007418A1 (zh) | 云平台块设备异常审计方法、装置、设备及存储介质 | |
CN110750592A (zh) | 数据同步的方法、装置和终端设备 | |
JP2007133544A (ja) | 障害情報解析方法及びその実施装置 | |
US20040049710A1 (en) | Maintaining data access during failure of a controller | |
CN111694684B (zh) | 存储设备的异常构造方法、装置、电子设备及存储介质 | |
US7873498B2 (en) | Remote hardware inspection system and method | |
US8924789B2 (en) | System and method for providing virtual machine diagnostic information using a flight recorder functionality | |
CN109254856B (zh) | 智能pos服务端提供接口给客户端的方法 | |
US20120159247A1 (en) | Automatically changing parts in response to tests | |
CN115499493A (zh) | 异步事务处理方法、装置、存储介质及计算机设备 | |
JPH10333944A (ja) | メモリダンプ採取方式 | |
CN112596987A (zh) | 应用程序可用性的监控方法、装置、电子设备和介质 | |
CN111488230A (zh) | 修改日志输出级别的方法、装置、电子设备及存储介质 | |
CN117093630B (zh) | 一种车载系统异常日志动态输出方法 | |
US20220229932A1 (en) | Method for performing multi-system log access management, associated system on chip integrated circuit and non-transitory computer-readable medium |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200326 Address after: 310051 room 307, floor B, building 2, No. 399, Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Hangzhou Haikang Storage Technology Co.,Ltd. Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park, Guanshan Road, Phase 5, Building F4, Room 21, Room 01 Applicant before: WUHAN HIKSTORAGE TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |