CN107515808A - 日志记录方法、装置、计算机设备和计算机可读存储介质 - Google Patents

日志记录方法、装置、计算机设备和计算机可读存储介质 Download PDF

Info

Publication number
CN107515808A
CN107515808A CN201710671316.7A CN201710671316A CN107515808A CN 107515808 A CN107515808 A CN 107515808A CN 201710671316 A CN201710671316 A CN 201710671316A CN 107515808 A CN107515808 A CN 107515808A
Authority
CN
China
Prior art keywords
write
daily record
nonvolatile memory
exception
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
Application number
CN201710671316.7A
Other languages
English (en)
Other versions
CN107515808B (zh
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.)
PAX Computer Technology Shenzhen Co Ltd
Original Assignee
PAX Computer Technology Shenzhen Co 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 PAX Computer Technology Shenzhen Co Ltd filed Critical PAX Computer Technology Shenzhen Co Ltd
Priority to CN201710671316.7A priority Critical patent/CN107515808B/zh
Publication of CN107515808A publication Critical patent/CN107515808A/zh
Application granted granted Critical
Publication of CN107515808B publication Critical patent/CN107515808B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

发明涉及一种基于Linux系统的日志记录方法、装置、计算机设备和计算机可读存储介质,所述方法包括:启动日志记录任务;进入能够跳过Linux系统的文件系统进行写操作的工作模式;当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器;当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器,并结束所述日志记录任务。本申请提供的方案能通过Linux系统的内核直接将应用程序异常所产生的信息写入到非易失性存储器中,克服了应用程序异常导致文件系统异常时无法存储日志的问题。

Description

日志记录方法、装置、计算机设备和计算机可读存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于Linux系统的日志记录方法、装置、计算机设备和计算机可读存储介质。
背景技术
Linux操作系统具备强大的日志记录功能,日志能够记录系统运行过程中每一个状况信息,与应用程序有关的日志记录了在Linux操作系统上运行的应用程序运行方面的事件,比如应用程序的运行状态,工程师可以通过该日志对应用程序的运行状态进行监视,从而根据该日志来查找和跟踪应用程序出现异常的原因。
一般情况下,日志保存在设备内存中,设备重启掉电后,存放在内存中的日志会丢失,这就亟需能够将日志存储起来,以方便工程师对日志的分析。目前,Linux设备上的应用程序正常运行时,将日志以文件形式进行存储。然而,当应用程序出现异常时,会导致日志无法存储。
发明内容
基于此,有必要针对目前应用程序出现异常导致日志无法存储的问题,提供一种基于Linux系统的日志记录方法、装置、计算机设备和计算机可读存储介质。
一种基于Linux系统的日志记录方法,所述方法包括:
启动日志记录任务;
进入能够跳过Linux系统的文件系统进行写操作的工作模式;
当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器;
当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器,并结束所述日志记录任务。
在其中一个实施例中,所述将日志写入非易失性存储器包括:
将日志写入非易失性存储器中的预配置区域;
所述将所述应用程序异常所产生的信息写入所述非易失性存储器包括:
将所述应用程序异常所产生的信息写入所述预配置区域。
在其中一个实施例中,所述将日志写入非易失性存储器中预配置区域的步骤之后,所述方法还包括:
判断所述预配置区域是否已满;
若已满,则定位到所述预配置区域的起始地址,并判断所述应用程序是否异常;
若未满,则直接判断所述应用程序是否异常。
在其中一个实施例中,所述方法还包括:
侦听应用程序启动的通知;
当侦听到所述通知时,则
定位到所述预配置区域的起始地址,和/或,执行所述进入能够跳过Linux系统的文件系统进行写操作的工作模式的步骤。
在其中一个实施例中,所述应用程序异常所产生的信息包括所述应用程序异常时的栈回溯信息。
一种基于Linux系统的日志记录装置,所述装置包括:
任务启动模块,用于启动日志记录任务;
模式配置模块,用于进入能够跳过Linux系统的文件系统进行写操作的工作模式;
日志写入模块,用于当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器;
所述日志写入模块还用于当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器;
任务结束模块,用于在所述日志写入模块将所述应用程序异常所产生的信息写入所述非易失性存储器之后,结束所述日志记录任务。
在其中一个实施例中,所述日志写入模块还用于将日志写入非易失性存储器中的预配置区域或将所述应用程序异常所产生的信息写入所述预配置区域。
在其中一个实施例中,所述装置还包括:
区域检测模块,用于判断所述预配置区域是否已满;
地址定位模块,用于在所述预配置区域已满时,则定位到所述预配置区域的起始地址;
异常检测模块,用于在判断所述配置区域是否已满之后,判断所述应用程序是否异常。
在其中一个实施例中,所述装置还包括:
侦听模块,用于侦听应用程序启动的通知;
所述地址定位模块还用于当侦听到所述通知时,则定位到所述预配置区域的起始地址,和/或,所述模式配置模块还用于当侦听到所述通知时执行所述进入能够跳过Linux系统的文件系统进行写操作的工作模式的步骤。
在其中一个实施例中,所述应用程序异常所产生的信息包括所述应用程序异常时的栈回溯信息。
一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行权利要求1至5中任一项所述方法的步骤。
一种存储介质,其特征在于,存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得所述处理器执行权利要求1至5中任一项所述方法的步骤。
上述基于Linux系统的日志记录方法、装置、计算机设备和计算机可读存储介质,通过开启一个日志记录任务,并进入到能够跳过Linux系统的文件系统进行写操作的工作模式,在应用程序正常运行时,在该工作模式下,通过Linux系统的内核将日志写入到非易失性存储器中,在应用程序异常时,也能通过内核在该工作模式下将应用程序异常所产生的信息写入到非易失性存储器中,克服了应用程序异常导致文件系统异常时无法存储日志的问题。
附图说明
图1为一个实施例中终端的内部结构示意图;
图2为一个实施例中基于Linux系统的日志记录方法的流程示意图;
图3为另一个实施例中基于Linux系统的日志记录方法的流程示意图;
图4为一个实施例中对预配置区域进行检测的流程示意图;
图5为又一个实施例中基于Linux系统的日志记录方法流程示意图;
图6为一个具体实施例中基于Linux系统的日志记录方法流程示意图;
图7为一个实施例中基于Linux系统的日志记录装置的结构框图;
图8为一个具体实施例中基于Linux系统的日志记录装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此次所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中终端的内部结构示意图。参照图1,该终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器。其中,该计算机设备的非易失性存储介质可存储操作系统和计算机可读指令,该计算机可读指令被执行时,可使得处理器执行一种基于Linux系统的日志记录方法。该处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该终端的非易失性存储介质存储有操作系统和计算机可执行指令,还可以用来存储整个终端运行产生的日志,该计算机可读指令被所述处理器执行时,可使得所述处理器执行以下各实施例中提供的一种基于Linux系统的日志记录方法。其中,该操作系统包括Linux操作系统。该终端可以是电脑、手机或者支付终端。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。比如,该终端还可以包括串口,用于连接外部的非易失性存储器。
在一个实施例中,如图2所示,提供了一种基于Linux系统的日志记录方法,该方法可应用于如图1所示的终端中,包括:
S202,启动日志记录任务。
其中,日志是记录终端所产生的操作和相应操作结果的数据。日志具体可以记录终端上运行的程序所产生的操作和相应操作结果,该程序可以是Linux系统的内核或者Linux系统上运行的应用程序。日志记录任务,是执行记录日志的操作的任务。日志记录任务可用于记录终端上运行的程序从终端开机、运行到关机过程中产生的日志。日志可以包括日志消息,日志消息以预设的格式来对终端产生的各种行为进行描述。
在一个实施例中,终端上运行的操作系统为Linux操作系统。终端可通过执行日志记录命令来启动日志记录任务。比如,在操作系统启动后,通过执行syslog函数来启动日志记录任务。
在一个实施例中,日志记录任务记录有需记录日志的程序的标识,终端在启动日志记录任务后,可根据日志记录任务中记载的程序的标识,对该程序所产生的日志,通过本申请的实施例中基于Linux系统的日志记录方法进行记录。需记录日志的程序可以是Linux操作系统的内核,也可以是待调试或待测试的应用程序。
S204,进入能够跳过Linux系统的文件系统进行写操作的工作模式。
其中,文件系统是Linux操作系统中负责对文件存储器的空间进行组织和分配的软件系统。应用程序在运行时,需要通过文件系统调用硬件设备驱动函数来对硬件设备进行写操作。
工作模式是终端的CPU运行的模式。工作模式包括用户模式和特权模式。终端可以通过执行各工作模式对应的模式配置指令以切换到相应工作模式。在用户模式下,应用程序对硬件设备的访问权限受到限制,硬件设备的读或写指令不能被执行,应用程序必须通过文件系统对硬件设备进行写操作。在特权模式下,Linux内核可以直接访问所有的系统资源,也可以任意地进行工作模式的切换。
在一个实施例中,跳过Linux系统的文件系统进行写操作的工作模式是特权模式。在该工作模式下,Linux系统内核可以直接访问所有的内存和硬件设备,并可以直接调用设备驱动程序对硬件设备进行写操作,从而可将日志信息存储在硬件设备中。
在一个实施例中,终端可在启动日志记录任务后,直接执行与特权模式相对应的模式配置命令,将CPU的工作模式配置为特权模式。在一个实施例中,可在启动日志记录任务后,从用户模式切换到特权模式。
S206,当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器。
其中,非易失性存储器是用来存储日志的存储器。非易失性存储器可以是终端内部的存储器,也可以是通过调试工具与终端连接的外部存储器。内部存储器可以是FLASH存储器,外部存储器可以是通过USB数据线与终端相连的U盘或硬盘,还可以是通过串口线或网线与终端相连的测试设备中的存储器。
Linux系统的日志具有多种日志类型,包括内核日志和应用程序日志等。内核日志记录与Linux系统内核有关的信息,应用程序日志记录与应用程序运行有关的信息。
在一个实施例中,在应用程序正常运行时,终端就可以在该工作模式下,通过Linux系统的内核,将应用程序正常运行时产生的日志写入非易失性存储器中。
Linux系统的内核可获得应用程序日志和内核日志。在该工作模式下,Linux系统内核可通过调用内核日志输出函数printk以字符串的格式将内核日志输出,可通过调用应用程序日志输出函数printf以字符串的格式将应用程序日志输出,不需要经过文件系统。
在一个实施例中,每一条日志消息包含有消息来源标识,终端可通过Linux系统的内核,根据消息来源标识对日志进行分类后存储到非易失性存储器中,以根据日志来源对日志进行分类存储。
S208,当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器,并结束所述日志记录任务。
其中,应用程序异常,是指应用程序脱离正常的运行逻辑导致应用程序的正常逻辑无法继续执行。
应用程序异常可以有多种表现形式。当终端为台式计算机时,应用程序异常可以表现为应用程序无响应或显示器花屏,还可以表现为与该电脑连接的鼠标移动指针无动作或是键盘输入没有识别等,但后台的音乐可以正常播放或者按下键盘上的caps lock/scroll lock按键后对应指示灯可以正常指示。遇到此种情况下的应用程序异常,对电脑重启即可恢复正常。
当终端为手机时,应用程序出现异常可以表现为应用程序出现卡死或崩溃,但手机按键声音可以依然存在。这里的应用程序异常,是应用程序运行时出现了异常。
当应用程序出现异常时,日志中含有应用程序异常产生的信息,该信息可以为查找异常、分析异常出现的原因提供依据。在该工作模式下Linux系统的内核可通过调用应用程序日志输出函数printf以字符串的格式将应用程序异常时产生的信息存储到非易失性存储器中,不需要经过文件系统。
对分析应用程序出现异常的原因来说,最有用的信息就是异常时发生的,将该应用程序异常时产生的信息写入非易失性存储器后,就可以停止执行对非易失性存储器的写操作,通过执行关闭日志记录命令来结束此次的日志记录任务。
上述基于Linux系统的日志记录方法,通过开启一个日志记录任务,并进入到能够跳过Linux系统的文件系统进行写操作的工作模式,在应用程序正常运行时,在该工作模式下,通过Linux系统的内核将日志写入到非易失性存储器中,在应用程序异常时,也能通过内核在该工作模式下将应用程序异常所产生的信息写入到非易失性存储器中,克服了应用程序异常导致文件系统异常时无法存储日志的问题。
在一个实施例中,如图3所示,步骤S206具体还包括:
S306,当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器中的预配置区域。
其中,预配置区域是非易失性存储器中的一个预设存储空间,用来专门存储日志记录任务所需记录的日志。将日志写入非易失性存储器中的预配置区域的步骤,包括于步骤S206中将日志写入非易失性存储器的步骤。
在一个实施例中,终端可通过Linux系统的内核,按照非易失性存储器总存储容量的预设百分比分,在非易失性存储器中分配预配置区域。预设百分比可以是低于100%的比例。
在一个实施例中,终端可通过Linux系统的内核,利用起始地址定位函数来获得预配置区域对应的起始地址,并以该起始地址起,将日志写入非易失性存储器中。
在本实施例中,通过在非易失性存储器中开设一个预设存储空间以存储日志信息,不占用整个非易失性存储器的存储空间,避免了资源浪费。
在一个实施例中,如图3所示,步骤S208具体还包括:
S308,当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述预配置区域,并结束所述日志记录任务。
其中,当应用程序出现异常时,日志中含有应用程序异常产生的信息。将所述应用程序异常所产生的信息写入所述预配置区域的步骤,包括于步骤S208中将所述应用程序异常所产生的信息写入所述非易失性存储器的步骤。
在一个实施例中,终端可通过Linux系统的内核,利用起始地址定位函数来获得预配置区域对应的起始地址,并以该起始地址起,将应用程序异常所产生的信息写入非易失性存储器中。
在本实施例中,通过在非易失性存储器中开设一个预设存储空间以存储应用程序异常所产生的信息,不占用整个非易失性存储器的存储空间,避免了资源浪费。
在一个实施例中,如图4所示,在步骤S306之后,该日志记录方法还包括对预配置区域进行检测并判断应用程序是否异常的步骤,具体包括:
S402,判断所述预配置区域是否已满。
终端可通过Linux系统的内核,判断预配置区域中已占用空间大小是否达到或近似达到预配置区域的总空间大小,若是则判定预配置区域已满,若否则判定预配置区域未满。
终端也可以通过Linux系统的内核,判断预配置区域中剩余存储空间大小是否等于或者近似等于零,若是则判定预配置区域已满,若否则判定预配置区域未满。
S404,若已满,则定位到所述预配置区域的起始地址,并判断所述应用程序是否异常。
在一个实施例中,若判定预配置区域已满,终端可通过Linux系统的内核,利用起始地址定位函数来获得预配置区域对应的起始地址,并判断应用程序是否异常。
其中,应用程序异常时,会被Linux系统检测出来,并产生与该应用程序异常相对应的异常通知。
在一个实施例中,Linux系统的内核接收到由Linux系统产生的与该应用程序异常相对应的异常通知时,根据该异常通知对应的处理函数对应用程序进行处理。
在一个实施例中,Linux系统的内核接收到由Linux系统产生的与该应用程序异常相对应的异常通知时,Linux系统的内核可以结束应用程序的运行并执行S308中的步骤。
S406,若未满,则直接判断所述应用程序是否异常。
在一个实施例中,若判定预配置区域未满,终端可通过Linux系统的内核,直接判断应用程序是否发生异常。
在本实施例中,在应用程序出现异常前,通过对存储日志的预配置区域是否写满进行检测,从而能够以覆盖式写入的方式对日志进行存储,既能够避免预配置区域写满导致无法存储日志的问题,又能节约存储资源。
在一个实施例中,如图5所示,在如图3或图4所示的基于Linux系统日志记录方法中还包括步骤:
S504,侦听应用程序启动的通知。
具体地,终端可以应用程序的名称为参数值执行进程查找命令,从而侦听到执行该进程查找命令所产生的表示应用程序启动的通知。
S506,当侦听到所述通知时,则定位到所述预配置区域的起始地址,和/或,执行所述进入能够跳过Linux系统的文件系统进行写操作的工作模式的步骤。
在一个实施例中,在启动日志记录任务后,进入能够跳过Linux系统的文件系统进行写操作的工作模式之前,Linux系统的内核执行侦听应用程序启动的通知的步骤。
在一个实施例中,当侦听到应用程序启动的通知时,终端可以通过Linux系统的内核,利用起始地址定位函数来获得预配置区域对应的起始地址,执行进入到能够跳过Linux系统的文件系统进行写操作的工作模式,并以该起始地址起,将应用程序异常所产生新的日志写入预配置区域中。
在一个实施例中,当未侦听到所述通知时,终端不执行利用起始地址定位函数获得预配置区域对应的地址的步骤,也不执行进入能够跳过Linux系统的文件系统进行写操作的工作模式的步骤。
在本实施例中,在启动日志任务之后,通过监听应用程序是否启动来决定是否向非易失性存储器写入需记录的日志,可以有效的节约系统运行所占用的资源。
在一个实施例中,在步骤S208中,应用程序异常所产生的信息包括所述应用程序异常时的栈回溯信息。
其中,栈回溯信息是应用程序运行过程中函数和函数变量的信息。应用程序异常时的栈回溯信息包括当前执行代码的位置、当前代码执行的指令、关键寄存器的值以及函数调用关系等信息。函数调用关系能够反映应用程序运行时代码执行的流程。函数调用关系比如函数A调用函数B,函数B调用函数C等。
在一个实施例中,Linux系统的内核可以通过dump stack函数来获取应用程序异常时的函数调用关系。
在本实施例中,应用程序运行时产生的日志包括栈回溯信息,将该栈回溯信息存储到非易失性存储器中,通过查询该栈回溯信息,就能准确地追踪和定位应用程序发生异常的原因,方便开发人员对应用程序进行调试。
如图6所示,在一个具体的实施例中,基于Linux系统的日志记录方法包括以下步骤:
S602,启动日志记录任务。
S604,侦听应用程序启动的通知。
S606,当侦听到所述通知时,则定位到所述预配置区域的起始地址,和/或,执行所述进入能够跳过Linux系统的文件系统进行写操作的工作模式。
S608,当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器中的所述预配置区域。
S610,判断所述预配置区域是否已满。
S612,若已满,则定位到所述预配置区域的起始地址,并判断所述应用程序是否异常。
S614,若未满,则直接判断所述应用程序是否异常。
S616,当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器,并结束所述日志记录任务。
在本实施例中,基于Linux系统的日志记录方法,Linux系统的内核开启日志记录任务后,侦听应用程序启动的通知,可节约系统运行占用的资源;在侦听到应用程序启动的通知后,定位到非易失性存储器中用来存储日志的预配置区域的起始地址,并进入能够跳过Linux系统的文件系统对非易失性存储器进行写操作的工作模式,在应用程序正常运行时,可通过Linux系统的内核直接将日志写入预配置区域中,只占用部分存储空间,避免资源浪费;对预配置区域是否写满进行检测,可避免该预配置区域写满后无法存储需记录的日志的情况;在该配置区域写满的情况下,Linux系统的内核利用起始地址定位函数来获得预配置区域对应的起始地址,从该起始地址开始以覆盖式写入的方式对应用程序异常产生的信息进行存储,可节约存储资源;在应用程序发生异常时,就可以将应用程序异常产生的信息写入非易失性存储器中,解决了应用程序出现异常时无法记录日志的情况。
在一个实施例中,如图7所示,提供了一种基于Linux系统的日志记录装置700,包括:
任务启动模块702,用于启动日志记录任务。
模式配置模块704,用于进入能够跳过Linux系统的文件系统进行写操作的工作模式。
日志写入模块706,用于当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器。
所述日志写入模块706还用于当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器。
任务结束模块708,用于在所述日志写入模块将所述应用程序异常所产生的信息写入所述非易失性存储器之后,结束所述日志记录任务。
在上述装置700中,通过开启一个日志记录任务,并进入到能够跳过Linux系统的文件系统进行写操作的工作模式,在应用程序正常运行时,在该工作模式下,通过Linux系统内核将日志写入到非易失性存储器中,在应用程序异常时,也能通过内核在该工作模式下将应用程序异常所产生的信息写入到非易失性存储器中,克服了应用程序异常导致文件系统异常时无法存储日志的问题。
在一个实施例中,所述日志写入模块706还用于将日志写入非易失性存储器中的预配置区域。
在本实施例中,通过在非易失性存储器中开设一个预设存储空间以存储日志信息,不占用整个非易失性存储器的存储空间,避免了资源浪费。
在一个实施例中,所述日志写入模块706还用于将所述应用程序异常所产生的信息写入所述预配置区域。
在本实施例中,通过在非易失性存储器中开设一个预设存储空间以存储应用程序异常所产生的信息,不占用整个非易失性存储器的存储空间,避免了资源浪费。
在一个实施例中,如图8所示,所述装置700还包括:
区域检测模块707,用于在将日志写入非易失性存储器中的预配置区域后,判断所述预配置区域是否已满。
地址定位模块709,用于在所述预配置区域已满时,则定位到所述预配置区域的起始地址。
异常检测模块710,用于在判断所述配置区域是否已满之后,判断所述应用程序是否异常。
在本实施例中,在应用程序出现异常前,通过对存储日志的预配置区域是否写满进行检测,从而能够以覆盖式写入的方式对日志进行存储,既能够避免预配置区域写满导致无法存储日志的问题,又能节约存储资源。
在一个实施例中,如图8所示,所述装置700还包括:
侦听模块703,用于侦听应用程序启动的通知。
所述地址定位模块709还用于当侦听到所述通知时,则定位到所述预配置区域的起始地址,和/或,模式配置模块704执行所述进入能够跳过Linux系统的文件系统进行写操作的工作模式的步骤。
在本实施例中,在启动日志任务之后,通过监听应用程序是否启动来决定是否向非易失性存储器写入需记录的日志,可以有效的节约系统运行所占用的资源。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行所述计算机可读指令时实现以下步骤:启动日志记录任务;进入能够跳过Linux系统的文件系统进行写操作的工作模式;当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器;当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器,并结束所述日志记录任务。
上述的计算机设备,通过开启一个日志记录任务,并进入到能够跳过Linux系统的文件系统进行写操作的工作模式,在应用程序正常运行时,在该工作模式下,通过Linux系统内核将日志写入到非易失性存储器中,在应用程序异常时,也能通过内核在该工作模式下将应用程序异常所产生的信息写入到非易失性存储器中,克服了应用程序异常导致文件系统异常时无法存储日志的问题。
在一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:将日志写入非易失性存储器中的预配置区域;所述将所述应用程序异常所产生的信息写入所述非易失性存储器包括:将所述应用程序异常所产生的信息写入所述预配置区域。
在一个实施例中,计算机可读指令使得处理器在执行将日志写入预配置区域之后,还执行以下步骤:判断所述预配置区域是否已满;若已满,则定位到所述预配置区域的起始地址,并判断所述应用程序是否异常;若未满,则直接判断所述应用程序是否异常。
在一个实施例中,计算机可读指令使得处理器在执行启动日志记录任务之前,还执行以下步骤:侦听应用程序启动的通知;当侦听到所述通知时,则定位到所述预配置区域的起始地址,和/或,执行所述进入能够跳过Linux系统的文件系统进行写操作的工作模式的步骤。
一种计算机可读存储介质,存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得所述处理器执行以下步骤:启动日志记录任务;进入能够跳过Linux系统的文件系统进行写操作的工作模式;当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器;当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器,并结束所述日志记录任务。
上述计算机可读存储介质上存储的计算机可读指令在被执行时,通过开启一个日志记录任务,并进入到能够跳过Linux系统的文件系统进行写操作的工作模式,在应用程序正常运行时,在该工作模式下,通过Linux系统的内核将日志写入到非易失性存储器中,在应用程序异常时,也能通过内核在该工作模式下将应用程序异常所产生的信息写入到非易失性存储器中,克服了应用程序异常导致文件系统异常时无法存储日志的问题。
在一个实施例中,计算机可读指令被处理器执行时还实现以下步骤:将日志写入非易失性存储器中的预配置区域;所述将所述应用程序异常所产生的信息写入所述非易失性存储器包括:将所述应用程序异常所产生的信息写入所述预配置区域。
在一个实施例中,计算机可读指令使得处理器在执行将日志写入非易失性存储器后,还执行以下步骤:判断所述预配置区域是否已满;若已满,则定位到所述预配置区域的起始地址,并判断所述应用程序是否异常;若未满,则直接判断所述应用程序是否异常。
在一个实施例中,计算机可读指令使得处理器在执行启动日志记录任务之前,还执行以下步骤:侦听应用程序启动的通知;当侦听到所述通知时,则定位到所述预配置区域的起始地址,和/或,执行所述进入能够跳过Linux系统的文件系统进行写操作的工作模式的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于Linux系统的日志记录方法,所述方法包括:
启动日志记录任务;
进入能够跳过Linux系统的文件系统进行写操作的工作模式;
当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器;
当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器,并结束所述日志记录任务。
2.根据权利要求1所述的方法,其特征在于,所述将日志写入非易失性存储器包括:
将日志写入非易失性存储器中的预配置区域;
所述将所述应用程序异常所产生的信息写入所述非易失性存储器包括:
将所述应用程序异常所产生的信息写入所述预配置区域。
3.根据权利要求2所述的方法,其特征在于,所述将日志写入非易失性存储器中预配置区域的步骤之后,所述方法还包括:
判断所述预配置区域是否已满;
若已满,则定位到所述预配置区域的起始地址,并判断所述应用程序是否异常;
若未满,则直接判断所述应用程序是否异常。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
侦听应用程序启动的通知;
当侦听到所述通知时,则
定位到所述预配置区域的起始地址,和/或,执行所述进入能够跳过Linux系统的文件系统进行写操作的工作模式的步骤。
5.根据权利要求1所述的方法,其特征在于,所述应用程序异常所产生的信息包括所述应用程序异常时的栈回溯信息。
6.一种基于Linux系统的日志记录装置,所述装置包括:
任务启动模块,用于启动日志记录任务;
模式配置模块,用于进入能够跳过Linux系统的文件系统进行写操作的工作模式;
日志写入模块,用于当应用程序运行时,在所述工作模式下,通过所述Linux系统的内核,将日志写入非易失性存储器;
所述日志写入模块还用于当所述应用程序异常时,在所述工作模式下并通过所述内核,将所述应用程序异常所产生的信息写入所述非易失性存储器;
任务结束模块,用于在所述日志写入模块将所述应用程序异常所产生的信息写入所述非易失性存储器之后,结束所述日志记录任务。
7.根据权利要求6所述的装置,其特征在于,所述日志写入模块还用于将日志写入非易失性存储器中的预配置区域或将所述应用程序异常所产生的信息写入所述预配置区域。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
区域检测模块,用于判断所述预配置区域是否已满;
地址定位模块,用于在所述预配置区域已满时,则定位到所述预配置区域的起始地址;
异常检测模块,用于在判断所述配置区域是否已满之后,判断所述应用程序是否异常。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行权利要求1至5中任一项所述方法的步骤。
10.一种存储介质,其特征在于,存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得所述处理器执行权利要求1至5中任一项所述方法的步骤。
CN201710671316.7A 2017-08-08 2017-08-08 日志记录方法、装置、计算机设备和计算机可读存储介质 Active CN107515808B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710671316.7A CN107515808B (zh) 2017-08-08 2017-08-08 日志记录方法、装置、计算机设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710671316.7A CN107515808B (zh) 2017-08-08 2017-08-08 日志记录方法、装置、计算机设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN107515808A true CN107515808A (zh) 2017-12-26
CN107515808B CN107515808B (zh) 2020-09-11

Family

ID=60722972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710671316.7A Active CN107515808B (zh) 2017-08-08 2017-08-08 日志记录方法、装置、计算机设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN107515808B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108257A (zh) * 2017-12-28 2018-06-01 努比亚技术有限公司 基于mdss的重启定位方法、移动终端及可读存储介质
CN108196968A (zh) * 2017-12-28 2018-06-22 努比亚技术有限公司 移动终端重启定位方法、移动终端及计算机可读存储介质
CN108829543A (zh) * 2018-06-21 2018-11-16 郑州云海信息技术有限公司 一种减小备份Linux系统日志大小的方法
CN108875075A (zh) * 2018-07-09 2018-11-23 深圳市道通智能航空技术有限公司 无人机系统日志的存储方法及无人机图传系统
CN109189612A (zh) * 2018-09-04 2019-01-11 广东小天才科技有限公司 一种Linux内核异常时的日志处理方法及电子设备
CN110262924A (zh) * 2018-03-12 2019-09-20 京瓷办公信息系统株式会社 图像形成装置和图像形成装置的控制方法
CN110457261A (zh) * 2019-08-06 2019-11-15 深圳市腾讯计算机系统有限公司 数据访问方法、装置及服务器
CN111208363A (zh) * 2019-12-13 2020-05-29 深圳市元征科技股份有限公司 测试方法及电子设备
CN111522679A (zh) * 2020-04-17 2020-08-11 深圳忆联信息系统有限公司 基于主机内存的ssd日志记录方法、系统和计算机设备
CN112541169A (zh) * 2020-12-21 2021-03-23 四川新网银行股份有限公司 一种linux用户行为的本地记录方法
CN112748885A (zh) * 2021-01-18 2021-05-04 联想(北京)有限公司 一种信息处理方法、装置、设备及存储介质
CN113420340A (zh) * 2021-07-09 2021-09-21 支付宝(杭州)信息技术有限公司 信息记录装置、计算机设备及信息记录方法
CN113849245A (zh) * 2021-09-23 2021-12-28 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN116383012A (zh) * 2023-05-26 2023-07-04 苏州浪潮智能科技有限公司 获取开机日志的方法及装置、传输开机日志的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216800A (zh) * 2008-01-02 2008-07-09 中兴通讯股份有限公司 一种linux日志的管理装置及方法
CN102073578A (zh) * 2009-11-23 2011-05-25 英业达股份有限公司 系统事件日志记录方法
CN103309792A (zh) * 2012-03-12 2013-09-18 联想(北京)有限公司 一种日志信息的控制方法及系统
CN103577308A (zh) * 2013-11-15 2014-02-12 惠州Tcl移动通信有限公司 移动设备的日志文件的获取方法
US20140310511A1 (en) * 2013-04-11 2014-10-16 Acer Incorporated Computer system and control method thereof
CN104978154A (zh) * 2015-07-27 2015-10-14 武汉天喻信息产业股份有限公司 一种基于缓存操作的flash快速读写方法及系统
JP2016170536A (ja) * 2015-03-11 2016-09-23 日本電気株式会社 情報処理装置、情報処理方法およびプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216800A (zh) * 2008-01-02 2008-07-09 中兴通讯股份有限公司 一种linux日志的管理装置及方法
CN102073578A (zh) * 2009-11-23 2011-05-25 英业达股份有限公司 系统事件日志记录方法
CN103309792A (zh) * 2012-03-12 2013-09-18 联想(北京)有限公司 一种日志信息的控制方法及系统
US20140310511A1 (en) * 2013-04-11 2014-10-16 Acer Incorporated Computer system and control method thereof
CN103577308A (zh) * 2013-11-15 2014-02-12 惠州Tcl移动通信有限公司 移动设备的日志文件的获取方法
JP2016170536A (ja) * 2015-03-11 2016-09-23 日本電気株式会社 情報処理装置、情報処理方法およびプログラム
CN104978154A (zh) * 2015-07-27 2015-10-14 武汉天喻信息产业股份有限公司 一种基于缓存操作的flash快速读写方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ADAM BROWN: "Application Logging: What, When, How", 《HTTPS://DZONE.COM/ARTICLES/APPLICATION-LOGGING-WHAT-WHEN》 *
史影等: "绝杀!Debug 大法,让运维不再尴尬", 《HTTP://WWW.YUNWEIPAI.COM/ARCHIVES/8031.HTML》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108257A (zh) * 2017-12-28 2018-06-01 努比亚技术有限公司 基于mdss的重启定位方法、移动终端及可读存储介质
CN108196968A (zh) * 2017-12-28 2018-06-22 努比亚技术有限公司 移动终端重启定位方法、移动终端及计算机可读存储介质
CN108196968B (zh) * 2017-12-28 2022-09-13 上海新纳通信技术有限公司 移动终端重启定位方法、移动终端及计算机可读存储介质
CN108108257B (zh) * 2017-12-28 2022-03-18 努比亚技术有限公司 基于mdss的重启定位方法、移动终端及可读存储介质
CN110262924A (zh) * 2018-03-12 2019-09-20 京瓷办公信息系统株式会社 图像形成装置和图像形成装置的控制方法
CN110262924B (zh) * 2018-03-12 2023-03-10 京瓷办公信息系统株式会社 图像形成装置和图像形成装置的控制方法
CN108829543A (zh) * 2018-06-21 2018-11-16 郑州云海信息技术有限公司 一种减小备份Linux系统日志大小的方法
CN108875075A (zh) * 2018-07-09 2018-11-23 深圳市道通智能航空技术有限公司 无人机系统日志的存储方法及无人机图传系统
CN109189612A (zh) * 2018-09-04 2019-01-11 广东小天才科技有限公司 一种Linux内核异常时的日志处理方法及电子设备
CN110457261A (zh) * 2019-08-06 2019-11-15 深圳市腾讯计算机系统有限公司 数据访问方法、装置及服务器
CN110457261B (zh) * 2019-08-06 2023-11-10 深圳市腾讯计算机系统有限公司 数据访问方法、装置及服务器
CN111208363B (zh) * 2019-12-13 2022-06-17 深圳市元征科技股份有限公司 测试方法及电子设备
CN111208363A (zh) * 2019-12-13 2020-05-29 深圳市元征科技股份有限公司 测试方法及电子设备
CN111522679A (zh) * 2020-04-17 2020-08-11 深圳忆联信息系统有限公司 基于主机内存的ssd日志记录方法、系统和计算机设备
CN112541169A (zh) * 2020-12-21 2021-03-23 四川新网银行股份有限公司 一种linux用户行为的本地记录方法
CN112748885A (zh) * 2021-01-18 2021-05-04 联想(北京)有限公司 一种信息处理方法、装置、设备及存储介质
CN113420340A (zh) * 2021-07-09 2021-09-21 支付宝(杭州)信息技术有限公司 信息记录装置、计算机设备及信息记录方法
CN113849245A (zh) * 2021-09-23 2021-12-28 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN113849245B (zh) * 2021-09-23 2023-09-12 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN116383012A (zh) * 2023-05-26 2023-07-04 苏州浪潮智能科技有限公司 获取开机日志的方法及装置、传输开机日志的方法
CN116383012B (zh) * 2023-05-26 2023-08-18 苏州浪潮智能科技有限公司 获取开机日志的方法及装置、传输开机日志的方法

Also Published As

Publication number Publication date
CN107515808B (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN107515808A (zh) 日志记录方法、装置、计算机设备和计算机可读存储介质
CN102422261B (zh) 对所引起的异常的通知
US9697108B2 (en) System, method, and apparatus for automatic recording and replaying of application executions
US9230106B2 (en) System and method for detecting malicious software using malware trigger scenarios in a modified computer environment
Yang et al. Testing for poor responsiveness in Android applications
US8156475B2 (en) Device and method for testing embedded software using emulator
US8769504B2 (en) Method and apparatus for dynamically instrumenting a program
CN103186461B (zh) 一种现场数据的保存方法和恢复方法以及相关装置
US20150058826A1 (en) Systems and methods for efficiently and effectively detecting mobile app bugs
CN111756575A (zh) 存储服务器的性能分析方法及装置、电子设备
CN105468529A (zh) 一种安卓应用ui控件精准遍历方法和装置
CN101719090A (zh) 对计算机软件系统崩溃原因进行自动分析的方法
JP2007500401A (ja) ソフトウェアデバッギング用装置とその方法
CN111427792A (zh) 测试方法、装置、电子设备和可读存储介质
CN111124870A (zh) 一种接口测试方法及装置
CN113497809A (zh) 基于控制流和数据流分析的mips架构漏洞挖掘方法
US20030204778A1 (en) System and method for intelligent trap analysis
CN103049374A (zh) 一种自动化测试的方法及装置
CN103176901A (zh) 一种嵌入式软件测试监控方法及系统
US20120110383A1 (en) Method and apparatus for off-line analyzing crashed programs
EP3635563B1 (en) Application analysis with flexible post-processing
CN102918508B (zh) 采用无探针跟踪捕获的重播体系结构执行
CN110765008A (zh) 一种数据处理方法及装置
CN108229155B (zh) 一种Linux系统用户操作行为审计方法
JP2005174045A (ja) ソースプログラム変換装置、ソースプログラム変換方法、ソースプログラム変換プログラム、および、プログラム記録媒体

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant