CN113010366B - 日志输出方法、装置及设备 - Google Patents

日志输出方法、装置及设备 Download PDF

Info

Publication number
CN113010366B
CN113010366B CN201911329844.XA CN201911329844A CN113010366B CN 113010366 B CN113010366 B CN 113010366B CN 201911329844 A CN201911329844 A CN 201911329844A CN 113010366 B CN113010366 B CN 113010366B
Authority
CN
China
Prior art keywords
log output
log
rate
software
level
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
Application number
CN201911329844.XA
Other languages
English (en)
Other versions
CN113010366A (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.)
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 CN201911329844.XA priority Critical patent/CN113010366B/zh
Publication of CN113010366A publication Critical patent/CN113010366A/zh
Application granted granted Critical
Publication of CN113010366B publication Critical patent/CN113010366B/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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供一种日志输出方法、装置及设备,该方法包括:确定向日志输出接口发送数据的发送速率;根据所述发送速率以及速率门限,确定日志输出级别;根据所述日志输出级别,向所述日志输出接口输出日志。本申请能够避免出现由于一段时间内通过日志输出接口输出的日志过多导致日志输出接口的负载过重的情况,从而避免了高日志级别的日志丢失的问题。

Description

日志输出方法、装置及设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种日志输出方法、装置及设备。
背景技术
通常,为了便于了解软件的运行状态,在软件运行的过程中,可以将需要获知的信息通过日志的形式输出。
现有技术中,软件中一条日志可以对应一个日志级别,通过日志输出级别可以控制日志的输出。具体的,当一条日志的日志级别高于日志输出级别时,可以将该日志通过串口进行输出,即将该日志输出出来;当一条日志的日志级别低于日志输出级别时,不将该条日志通过串口进行输出,即不将该日志输出出来。通常,日志输出级别是固定的,或者是手动设置的。
但是,上述日志输出方法中存在高日志级别的日志丢失的问题。
发明内容
本申请实施例提供一种日志输出方法、装置及设备,用以解决现有技术中存在高日志级别的日志丢失的问题。
第一方面,本申请实施例提供一种日志输出方法,包括:
确定向日志输出接口发送数据的发送速率;
根据所述发送速率以及速率门限,确定日志输出级别;
根据所述日志输出级别,向所述日志输出接口输出日志。
第二方面,本申请实施例提供一种日志输出方法,包括:
确定向日志输出接口发送数据的发送速率;
根据所述发送速率以及速率门限,确定操作系统内核的日志输出级别;
根据所述日志输出级别,向所述日志输出接口输出所述操作系统内核的日志。
第三方面,本申请实施例提供一种日志输出装置,包括:
第一确定模块,用于确定向日志输出接口发送数据的发送速率;
第二确定模块,用于根据所述发送速率以及速率门限,确定日志输出级别;
输出模块,用于根据所述日志输出级别,向所述日志输出接口输出日志。
第四方面,本申请实施例提供一种日志输出装置,包括:
第一确定模块,用于确定向日志输出接口发送数据的发送速率;
第二确定模块,用于根据所述发送速率以及速率门限,确定操作系统内核的日志输出级别;
输出模块,用于根据所述日志输出级别,向所述日志输出接口输出所述操作系统内核的日志。
第五方面,本申请实施例提供一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如上述第一方面任一项所述的方法。
第六方面,本申请实施例提供一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如上述第二方面任一项所述的方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如第一方面任一项所述的方法。
本申请实施例还提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现如第一方面任一项所述的方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行如第二方面任一项所述的方法。
本申请实施例还提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现如第二方面任一项所述的方法。
本申请实施例提供的日志输出方法、装置及设备,通过根据向日志输出接口发送数据的发送速率以及速率门限,确定日志输出级别,根据日志输出级别,向日志输出接口输出日志,由于发送速率与速率门限的关系可以用于表征所述日志输出接口的负载状况,因此根据发送速率所确定的日志输出级别可以根据日志输出接口的负载状况进行动态调整,避免出现由于一段时间内通过日志输出接口输出的日志过多导致日志输出接口的负载过重的情况,从而避免了高日志级别的日志丢失的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的应用场景示意图;
图2为本申请一实施例提供的日志输出方法的流程示意图;
图3为本申请另一实施例提供的日志输出方法的流程示意图;
图4为本申请又一实施例提供的日志输出方法的流程示意图;
图5为本申请又一实施例提供的日志输出方法的流程示意图;
图6为本申请一实施例提供的串口发送示意图;
图7为本申请又一实施例提供的日志输出方法的流程示意图;
图8为本申请一实施例提供的日志输出装置的结构示意图;
图9为本申请一实施例提供的计算机设备的结构示意图;
图10为本申请另一实施例提供的日志输出装置的结构示意图;
图11为本申请另一实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
本申请实施例提供的日志输出方法可以应用于在软件运行的过程中,需要通过日志输出的方式记录软件运行相关信息的任意计算机设备中。如图1所示,该计算机设备可以包括处理器11和日志输出接口12。其中,处理器11可以运行软件,并在软件运行的过程中通过日志输出接口12输出日志。
对于软件的类型可以不做限定,示例性的,软件可以包括应用软件和/或操作系统内核,在操作系统为Linux时,对应的操作系统内核可以为Linux操作系统内核。对于计算机设备的具体类型,本申请可以不做限定,示例性的,计算机设备可以包括服务器。
需要说明的是,对于日志输出接口具体可以为能够用于输出日志的任意接口。示例性的,日志输出接口可以包括串口,即可以将日志通过串口输出,例如,可以通过程序提供的print函数将日志通过串口打印。示例性的,日志输出接口可以包括内存接口,即可以将日志记录在文件中。
其中,处理器11可以根据日志输出级别控制日志输出的数据量,日志输出级别可以为所有日志级别中的一个级别。具体的,在日志输出级别越高时,由于日志级别高于日志输出级别的日志越少,因此日志输出的数据量越小。在日志输出级别越低时,由于日志级别高于日志输出级别的日志越多,因此日志输出的数据量越大。其中,不同软件可以对应不同的日志输出级别,例如操作系统内核可以对应内核日志输出级别,应用程序可以根据需求设计自身的日志输出级别。
示例性的,可以通过数值表征级别的高低,本申请中以数值越小级别越高为例。例如,假设日志分为7个级别,对应数值0至7,则数值0可以表示最高的日志级别,数值7可以表示最低的日志级别。进一步举例,假设日志输出级别等于4,则可以输出日志级别小于4的日志,而不输出日志级别大于4的日志。
需要说明的是,对于日志级别等于日志输出级别的日志,可以根据灵活设计为输出或者不输出,本申请对此可以不做限定。
通常,日志输出级别是固定的或者手动设置的,当一段时间内需要通过日志输出接口输出的日志过多时,会存在由于日志输出接口的负载过重而导致日志丢失的情况,从而概率性的存在高日志级别的日志丢失的问题。以日志输出接口为串口为例,处理器可以将需要输出的日志放在缓存队列中,并从缓存中调度日志发送给串口,由串口将日志传输给输出对象,例如显示器。由于串口速率有限,当处理器需要输出的日志过多时,会存在缓存队列溢出,从而导致日志丢失的情况。
本申请实施例提供的日志输出方法,通过根据向日志输出接口发送数据的发送速率以及速率门限确定日志输出门限,并根据该日志输出门限向日志输出接口输出日志,使得日志输出门限可以根据向日志输出接口发送数据的发送速率动态调整,避免出现由于一段时间内通过日志输出接口输出的日志过多导致日志输出接口的负载过重的情况,从而避免了高日志级别的日志丢失的问题。
另外,由于串口的速率比较低,最大为115200波特率,大约只有11KB/s的输出速率。而服务器异常时往往会通过串口输出大量的日志,会使得操作系统内核一直在等待串口发送数据,从而导致一些内核调度异常问题。实际生产环境时,通常会手动调整日志输出级别,减小日志输出,而手动设置一个合理的日志输出级别非常困难。因此,本申请实施例提供的日志输出方法还可以避免因串口发送慢导致的内核调度问题,并且不需要人工干预。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图2为本申请一实施例提供的日志输出方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的计算机设备,具体可以为计算机设备的处理器。如图2所示,本实施例的方法可以包括:
步骤201,确定向日志输出接口发送数据的发送速率。
本步骤中,所述发送速率表征单位时间内向日志输出接口发送数据的数量。示例性的,发送速率具体可以表征每秒向日志输出接口发送数据的比特数。示例性的,发送速率具体可以表征每秒向日志输出接口发送数据的字节数。
由于处理器是通过调用日志输出接口的驱动提供的发送函数向日志输出接口发送数据,因此,基于发送函数可以确定出向日志输出接口发送数据的发送速率。
步骤202,根据所述发送速率以及速率门限,确定日志输出级别。
本步骤中,所述发送速率与速率门限的关系,可以用于表征所述日志输出的负载状况,因此,根据发送速率以及速率门限确定的日志输出级别,是在考虑日志输出接口的负载状况下所确定出的日志输出级别。
示例性的,所述速率门限可以为预设门限,或者,所述速率门限可以根据所述日志输出接口的最大速率确定。通过根据日志输出接口的最大速率确定速率门限,能够提高发送速率与速率门限的关系所表征的负载状况的准确性。其中,所述最大速率可以是指所述日志输出接口最大支持的速率。示例性的,所述最大速率具体可以包括最大传输速率或最大发送速率。例如,可以对最大速率进行数学运算得到速率门限。
示例性的,可以根据所述发送速率通过查表的方式确定日志输出级别,例如,可以根据速率门限划分多个速率范围,表格中可以预先保存有不同速率范围与日志输出等级的对应关系,进一步的可以根据所述发送速率通过查表方式确定出所述发送速率匹配的日志输出级别。
步骤203,根据所述日志输出级别,向所述日志输出接口输出日志。
本步骤中,具体的,在需要记录的一个日志的日志级别高于日志输出级别时,可以向所述日志输出设备输出该日志,在需要记录的一个日志的日志级别低于日志输出级别时,可以忽略该日志,即不向所述日志输出设备输出该日志。
本实施例中,通过根据向日志输出接口发送数据的发送速率以及速率门限,确定日志输出级别,根据日志输出级别,向日志输出接口输出日志,由于发送速率与速率门限的关系可以用于表征所述日志输出接口的负载状况,因此根据发送速率以及速率门限所确定的日志输出级别可以根据日志输出接口的负载状况进行动态调整,避免出现由于一段时间内通过日志输出接口输出的日志过多导致日志输出接口的负载过重的情况,从而避免了高日志级别的日志丢失的问题。
图3为本申请另一实施例提供的日志输出方法的流程示意图,本实施例在图2所示实施例的基础上主要描述了根据所述发送速率与速率门限的大小关系,确定日志输出级别的一种可选的实现方式,如图3所示,本实施例的方法可以包括:
步骤301,确定向日志输出接口发送数据的发送速率。
需要说明的是,步骤301与步骤201类似,在此不再赘述。
步骤302,在所述发送速率大于第一速率门限时,上调日志输出级别。
本步骤中,第一速率门限可以用于判断日志输出接口的负载是否较重。示例性的,在日志输出接口的负载接近满载时可以表示负载较重。具体的,在发送速率大于第一速率门限时,可以表征日志输出接口出现负载较重的情况;在发送速率小于或等于第一速率门限时,可以表征日志输出接口未出现负载较重的情况。第一速率门限可以根据最大速率确定,例如可以为最大速率的90%或者80%。
其中,上调日志输出级别可以理解为将日志输出级别向上调整,调整后的日志输出级别高于调整前的日志输出级别。例如,假设日志分为7个级别,对应数值0至7,数值越小日志级别越高,且调整前的日志输出级别等于4,则调整后的日志输出级别可以等于3。
需要说明的是,调整前的日志输出级别等于4,调整后的日志输出级别等于3中,是以上调日志输出级别的步长为上调1个日志级别为例,可以理解的是,也可以上调多个日志级别。例如,在发送速率大于速率门限A且小于第一速率门限时,上调日志输出级别的步长可以为上调2个日志级别,在发送速率大于第一速率门限且小于速率门限A时,上调日志输出级别的步长可以为上调1个日志级别。其中,速率门限A大于第一速率门限,速率门限A较第一速率门限可以用于判断负载更重的情况。
需要说明的是,调整前的日志输出级别也可以理解为当前的日志输出级别,即当前向日志输出接口输出日志所根据的日志输出级别,具体可以是最近一次上调或下调后的日志输出级别,或者可以是初始的日志输出级别。
可选的,步骤302具体可以包括在发送速率大于第一速率门限并且当前的日志输出级别低于第一目标级别时,上调日志输出级别。通过上调日志输出级别需要满足当前的日志输出级别低于第一目标级别的条件,可以对上调后的日志输出级别进行限制,避免由于上调后的日志输出级别过高而带来的问题。
示例性的,所述第一目标级别包括最高的日志级别。以日志分为7个级别,对应数值0至7,数值越小日志级别越高为例,最高的日志级别为0,可以理解的是,也可以根据实际需求将第一目标级别设置为其他日志等级,例如1。
步骤302可以实现在日志输出接口的负载较重时,通过上调日志输出级别限制低日志级别的日志的输出,从而避免出现由于一段时间内通过日志输出接口输出的日志过多导致日志输出接口的负载过重的情况。
由于在所述发送速率小于或等于第一速率门限时,可以表征日志输出接口未出现负载较重的情况,从而不会出现由于一段时间内通过日志输出接口输出的日志过多导致日志输出接口的负载过重,导致高日志等级的日志丢失的问题。因此,可选的,在所述发送速率小于或等于第一速率门限时,日志输出级别可以保持不变。
或者,为了在避免日志输出接口的负载过重的基础上,尽可能的输出更多的日志,以便于了解软件运行的相关信息,上述根据所述发送速率以及速率门限,确定日志输出级别还可以包括根据发送速率以及速率门限,上调日志输出级别的相关处理的。示例性的,本实施例的方法还可以包括如下步骤303。
步骤303,在所述发送速率小于第二速率门限时,下调日志输出级别,所述第二速率门限小于所述第一速率门限。
本步骤中,第二速率门限可以用于判断日志输出接口的负载是否较轻。示例性的,在日志输出接口的负载接近空载时可以表示负载较轻。具体的,在发送速率小于第二速率门限时,可以表征日志输出接口出现负载较轻的情况;在发送速率大于或等于第二速率门限时,可以表征日志输出接口未出现负载较轻的情况。第二速率门限可以根据最大速率确定,例如可以为最大速率的10%或者20%。
其中,下调日志输出级别可以理解为将日志输出级别向下调整,调整后的日志输出级别低于调整前的日志输出级别。例如,假设日志分为7个级别,对应数值0至7,数值越小日志级别越高,且调整前的日志输出级别等于4,则调整后的日志输出级别可以等于5。
需要说明的是,调整前的日志输出级别等于4,调整后的日志输出级别等于5中,是以下调日志输出级别的步长为上调1个日志级别为例,可以理解的是,也可以下调多个日志级别。例如,在发送速率小于速率门限B时,下调日志输出级别的步长可以为下调2个日志级别,在发送速率大于速率门限B且小于第二速率门限时,下调日志输出级别的步长可以为下调1个日志级别。其中,速率门限B小于第一速率门限,速率门限B较第二速率门限可以用于判断负载更轻的情况。
可选的,步骤303具体可以包括在发送速率小于第一速率门限并且当前的日志输出级别高于第二目标级别时,下调日志输出级别。通过下调日志输出级别需要满足当前的日志输出级别高于第二目标级别的条件,可以对下调后的日志输出级别进行限制,避免由于下调后的日志输出级别过低而带来的问题。需要说明的是,上述第一目标级别可以高于上述第二目标级别。
示例性的,所述第二目标级别包括最低的日志级别。以日志分为7个级别,对应数值0至7,数值越小日志级别越高为例,最低的日志级别为7,可以理解的是,也可以根据实际需求将第二目标级别设置为其他日志等级,例如6。
示例性的,所述第二目标级别包括初始的日志输出级别。所述初始的日志输出级别是预设值或者是由用户配置。其中,所述初始的日志输出级别可以是指未做任何调整前的日志输出级别。通过所述第二目标级别包括初始的日志输出级别可以在负载较重上调日志输出级别的基础上,在负载较轻时恢复日志输出级别。
步骤303可以实现在日志输出接口的负载较轻时,通过下调日志输出级别,可以最大限度的保证低日志等级的日志的输出。
在上述步骤302和步骤303的基础上,发送速率小于或等于第一速率门限且大于或等于第二速率门限,可以表征日志输出接口未出现负载较重以及负载较轻的情况,即当前的日志输出级别是合理的,因此日志输出级别可以保持不变,即不会日志输出级别进行调整。
步骤304,根据所述日志输出级别,向所述日志输出接口输出日志。
需要说明的是,步骤304与步骤203类似,在此不再赘述。
本实施例中,通过在发送速率大于第一速率门限时,上调日志输出级别,在发送速率小于第二速率门限时,下调日志输出级别,第二速率门限小于第一速率门限,可以实现在日志输出接口的负载较重时,通过上调日志输出级别限制低日志级别的日志的输出,从而避免出现由于一段时间内通过日志输出接口输出的日志过多导致日志输出接口的负载过重的情况,在日志输出接口的负载较轻时,通过下调日志输出级别,可以最大限度的保证低日志等级的日志的输出,从而既可以最大限度的保证日志的输出,又可以避免因日志输出接口负载过重导致高日志等级的日志丢失的问题。在日志输出接口为串口时,还可以避免由于串口发送慢导致的内核调度问题。
上述图2、图3所示实施例中,速率门限可以不区分软件,即所有软件均使用相同的速率门限进行日志输出级别的调整,或者考虑到某个或某些软件对日志输出的要求较高,因此两个软件可以对应不同的速率门限以及日志输出等级调整策略,示例性的可以如图4所示。
图4为本申请又一实施例提供的日志输出方法的流程示意图,本实施例在上述方法实施例的基础上主要描述了根据一个软件对应的速率门限对该软件的日志输出级别进行调整的实现方式,如图4所示,本实施例的方法可以包括:
步骤401,确定向日志输出接口发送数据的发送速率。
本步骤中,在软件是操作系统内核时,由于操作系统内核可以直接与日志输出接口的驱动进行数据通信,因此,操作系统内核在运行的过程中可以直接确定出处理器向日志输出接口发送数据的发送速率。
可选的,步骤401具体可以包括通过操作系统内核,以目标时长为周期,周期性确定向日志输出接口发送数据的发送速率。通过周期性确定向日志输出接口发送数据的发送速率,可以在尽量减小运算量的基础上,确定实时的发送速率。可选的,目标时长可以为预设时长,或者目标时长可以作为内核参数用户配置,目标时长例如可以为1秒、2秒等。
示例性的,所述以目标时长为周期,周期性确定向日志输出接口发送数据的发送速率,包括:获取第一字节数、第一时间戳、第二字节数和第二时间戳,根据所述第一字节数、第一时间戳、第二字节数和第二时间戳,确定向日志输出接口发送数据的发送速率。其中,第一字节数为周期定时器本次超时处理器向日志输出接口发送数据的字节总数,第二字节数为周期定时器上一次超时处理器向日志输出接口发送数据的字节总数,第一时间戳为周期定时器本次超时的时间戳,第二时间戳为周期定时器上一次超时的时间戳,周期定时器的周期为所述目标时长。
在软件是应用程序时,由于应用程序需要在操作系统之上实现,无法直接与日志输出接口的驱动进行数据通信,因此,应用程序在运行的过程中可以通过操作系统内核提供的接口函数,确定向日志输出接口发送数据的发送速率,其中,所述接口函数为操作系统提供的查询向日志输出接口发送数据的发送速率的函数,接口函数的出口参数可以包括发送速率。
步骤402,根据所述发送速率以及软件对应的速率门限,确定所述软件的日志输出级别。
本步骤中,软件与速率门限之间存在对应关系,一个软件对应的速率门限可以与该软件对于日志的输出需求相关。一个软件对于日志的输出需求越高时,该软件对应的速率门限对于减小日志输出接口的负载的贡献越小。
示例性的,以速率门限包括第一速率门限为例,一个软件可以对应一个第一速率门限,两个软件对应的第一速率门限可以相同也可以不同。具体的,在一个软件对于日志的输出需求越高时,即该软件的日志需要越优先输出时,该软件的第一速率门限可以越大,从而越推迟对于该软件的低级别日志的限制。在一个软件对于日志的输出需求越低时,即该软件的日志越不需要优先输出,该软件的第一速率门限可以越小,从而越尽早对该软件的低级别日志进行限制。例如,假设软件1对于日志的输出需求高于软件2,则软件1对应的第一速率门限可以大于软件2对应的第一速率门限,从而可以先调高软件2的日志输出级别,再调高软件1的日志输出级别。
示例性的,以速率门限包括第二速率门限为例,一个软件可以对应一个第二速率门限,两个软件对应的第二速率门限可以相同也可以不同。具体的,在一个软件对于日志的输出需求越高时,即该软件的日志需要越优先输出时,该软件的第二速率门限可以越大,从而越尽早减小对于该软件的低级别日志的限制。在一个软件对于日志的输出需求越低时,即该软件的日志越不需要优先输出,该软件的第二速率门限可以越小,从而越推迟减小对该软件的低级别日志的限制。例如,假设软件1对于日志的输出需求高于软件2,则软件1对应的第二速率门限可以大于软件2对应的第二速率门限,从而可以先调低软件1的日志输出级别,再调低软件2的日志输出级别。
需要说明的是,对于根据发送速率以及软件对应的速率门限,确定软件的日志输出级别的具体方式,可以参见图2、图3所示实施例的相关描述,在此不再赘述。
需要说明的是,不同软件的日志级别的划分可以不同。
步骤403,根据所述软件的日志输出级别,向所述日志输出接口输出所述软件的日志。
本步骤中,示例性的,可以根据软件1的日志输出级别,向日志输出接口输出软件1的日志,根据软件2的日志输出级别,向日志输出接口输出软件2的日志。以日志分为7个级别,对应数值0至7,数值越小日志级别越高为例,假设软件1的日志输出级别为4,则软件1需要记录的日志等级小于4的日志可以向日志输出接口输出,假设软件2的日志输出等级为3,则软件2需要记录的日志等级小于3的日志可以向日志输出接口输出。
本实施例中,通过根据发送速率以及软件对应的速率门限,确定该软件的日志输出级别,该软件对应的速率门限与该软件对于日志的输出需求相关,根据该软件的日志输出级别,向日志输出接口输出该软件的日志,实现了根据软件对于日志的输出需求确定软件的日志输出级别,使得在确定日志输出级别时可以考虑不同软件对于日志的相应输出需求,从而使得对于日志输出级别的调整更加合理。
图5为本申请又一实施例提供的日志输出方法的流程示意图,本实施例在上述方法实施例的基础上以日志输出接口为串口为例进行具体说明,如图5所示,本实施例的方法可以包括:
步骤501,初始化速率线程。
本步骤中,速率(speed)线程可以是内核线程,其可以被定时唤醒,速率线程的功能是在唤醒后计算向串口发送数据的发送速率,并根据发送速率以及速率门限确定操作系统内核的日志输出级别。初始化速率线程例如可以对速率线程中使用到的变量赋初值。
步骤502,定时唤醒速率线程。
具体的,可以定时器超时时,唤醒速率线程。对于唤醒速率线程的具体方式,本申请可以不做限定,例如可以通过notify方法是唤醒速率线程,在速率线程唤醒之后,进一步的,可以执行如下步骤503-步骤508。
步骤503,确定向串口发送数据的发送速率。
本步骤中,可以在内核的串口发送函数中增加发送字节计数。示例性的,可以通过一个初值是0的64比特的变量实现发送字节计数,从而可以简化设计,实现发送字节数的不断累计。
其中,串口发送函数可以由串口的驱动提供,用于将字符串发送给串口进行输出,以串口为通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)为例,串口发送函数可以为uart_start函数。进一步的,可以在速率线程唤醒后,通过读取串口发送函数中的发送字节计数(count2)和时间戳t2,通过前一次唤醒时记录的发送字节数(count1)和时间戳(t1),计算发送速率speed,具体的speed=(count2-count1)/(t2-t1)。
如图6所示,以串口为控制台终端(简称TTY,其中,TTY是Teletype或Teletypewriter的缩写,原来是指电传打字机,后来这种设备逐渐键盘和显示器取代)串口为例,内核空间(kernel space)的系统控制台核心61(system console core)可以根据内核的日志输出级别对于printk函数需要记录的日志进行筛选,将printk函数需要记录的日志中日志级别高于内核的日志输出级别的日志发送至控制台终端核心62(TTY core)虚拟的控制台终端设备621,该控制台终端设备621通过调用控制台终端驱动63(TTY Drivers)提供的串口发送函数将字符串发送给控制台终端串口631进行输出。
除了内核可以向控制台终端串口631发送数据之外,用户空间(user space)的应用程序(application,APP)64也可以向控制台终端串口631发送数据。具体的,应用程序64可以通过将日志级别高于应用程序的日志输出等级的需要记录的日志写到虚拟的字符设备驱动(char device driver)65提供的文件中,由字符设备驱动65发送至控制台终端核心62虚拟的控制台终端设备621,该控制台终端设备621通过调用控制台终端驱动63提供的串口631发送函数将字符串发送给串口进行输出。
需要说明的是,图6所示的内核结构仅为举例。
步骤504,判断发送速率是否大于H。
其中,H可以理解为前述第一速率阈值。若发送速率大于H,则执行步骤508;若发送速率小于或等于H,则执行步骤505。
步骤505,判断发送速率是否小于L。
其中,L可以理解为前述第二速率阈值。若发送速率小于L,则执行步骤506;若发送速率大于或等于L,则内核的日志输出级别保持不变,返回步骤502,等待下一次唤醒。
步骤506,判断内核的日志输出级别R是否大于或等于Max。
其中,Max可以理解为前述第二目标级别。若内核的日志输出级别大于或等于Max,则内核的日志输出级别保持不变,返回步骤502等待下一次唤醒;若内核的日志输出级别小于Max,则执行步骤507。
步骤507,上调内核的日志输出级别R。
需要说明的是,步骤507执行之后可以返回步骤502,等待下一次唤醒。
步骤508、判断内核的日志输出级别是否小于或等于Min。
其中,Min可以理解为前述第一目标级别。若内核的日志输出级别小于或等于Min,则内核的日志输出级别保持不变,返回步骤502等待下一次唤醒;若内核的日志输出级别大于Min,则执行步骤509。
步骤509,下调内核的日志输出级别S。
需要说明的是,步骤509执行之后可以返回步骤502,等待下一次唤醒。
本实施例中,通过定时唤醒速率线程,在速率线程唤醒后确定向串口发送数据的发送速率,根据发送速率确定内核的日志输出级别,从而实现根据串口的负载状况动态调整内核的日志输出级别,既可以最大限度的保证内核日志的输出,又可以避免因串口发送慢导致的内核调度问题。
图7为本申请又一实施例提供的日志输出方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的计算机设备,具体可以为计算机设备的处理器。如图7所示,本实施例的方法可以包括:
步骤701,确定向日志输出接口发送数据的发送速率;
步骤702,根据所述发送速率以及速率门限,确定操作系统内核的日志输出级别;
步骤703,根据所述日志输出级别,向所述日志输出接口输出所述操作系统内核的日志。
需要说明的是,图7与前述方法实施例的主要区别是在于图7中主要针对操作系统内核的日志输出级别的动态调整,其具体实现方式可以参见前述方法实施例的相关描述,在此不再赘述。
本实施例中,通过根据向日志输出接口发送数据的发送速率以及速率门限,确定操作系统内核的日志输出级别,根据日志输出级别,向日志输出接口输出操作系统内核的日志,由于发送速率与速率门限的关系可以用于表征所述日志输出接口的负载状况,因此根据发送速率以及速率门限所确定的操作系统内核的日志输出级别可以根据日志输出接口的负载状况进行动态调整,避免出现由于一段时间内通过日志输出接口输出的日志过多导致日志输出接口的负载过重的情况,从而避免了操作系统内核的高日志级别的日志丢失的问题。
图8为本申请一实施例提供的日志输出装置的结构示意图;参考附图8所示,本实施例提供了一种日志输出装置,该装置可以执行上述的日志输出方法,具体的,该日志输出装置80可以包括:
第一确定模块81,用于确定向日志输出接口发送数据的发送速率;
第二确定模块82,用于根据所述发送速率以及速率门限,确定日志输出级别;
输出模块83,用于根据所述日志输出级别,向所述日志输出接口输出日志。
可选的,第二确定模块82,具体用于在所述发送速率大于第一速率门限时,上调日志输出级别。
可选的,第二确定模块82,具体用于在所述发送速率大于第一速率门限并且当前的日志输出级别低于第一目标级别时,上调日志输出级别。
可选的,所述第一目标级别包括最高的日志级别。
可选的,第二确定模块82,还用于在所述发送速率小于第二速率门限时,下调日志输出级别,所述第二速率门限小于所述第一速率门限。
可选的,第二确定模块82,具体用于所述在所述发送速率小于第二速率门限时,下调日志输出级别,包括:
在所述发送速率小于第二速率门限并且当前的日志输出级别高于第二目标级别时,下调日志输出级别。
可选的,所述第二目标级别包括最低的日志级别,或者,初始的日志输出级别。
可选的,所述初始的日志输出级别是预设值或者是由用户配置。
可选的,所述速率门限是根据所述日志输出接口的最大速率确定。
可选的,第二确定模块82,具体用于根据所述发送速率以及软件对应的速率门限,确定所述软件的日志输出级别;
输出模块83,具体用于根据所述软件的日志输出级别,向所述日志输出接口输出所述软件的日志。
可选的,所述软件包括应用软件和/或操作系统内核。
可选的,第一确定模块81,具体用于通过操作系统内核以目标时长为周期,周期性确定向日志输出接口发送数据的发送速率。
可选的,第一确定模块81,具体用于:
获取第一字节数、第一时间戳、第二字节数和第二时间戳;其中,所述第一字节数为周期定时器本次超时处理器向日志输出接口发送数据的字节总数,所述第二字节数为周期定时器上一次超时处理器向日志输出接口发送数据的字节总数,所述第一时间戳为周期定时器本次超时的时间戳,所述第二时间戳为周期定时器上一次超时的时间戳;所述周期定时器的周期为所述目标时长;
根据所述第一字节数、所述第一时间戳、所述第二字节数和所述第二时间戳,确定向日志输出接口发送数据的发送速率。
可选的,第一确定模块81,还用于通过所述操作系统内核提供的接口函数,确定向日志输出接口发送数据的发送速率,所述接口函数的出口参数包括所述发送速率。
可选的,所述操作系统内核包括Linux操作系统内核。
可选的,所述日志输出接口包括串口。
图8所示装置可以执行图2-图6所示实施例的方法,本实施例未详细描述的部分,可参考对图2-图6所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2-图6所示实施例中的描述,在此不再赘述。
在一个可能的实现中,图8所示日志输出装置的结构可实现为一计算机设备。如图9所示,该计算机设备可以包括:处理器91和存储器92。其中,存储器92用于存储支持计算机设备执行上述图2-图6所示实施例中提供的日志输出方法的程序,处理器91被配置为用于执行存储器92中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器91执行时能够实现如下步骤:
确定向日志输出接口发送数据的发送速率;
根据所述发送速率以及速率门限,确定日志输出级别;
根据所述日志输出级别,向所述日志输出接口输出日志。
可选的,处理器91还用于执行前述图2-图6所示实施例中的全部或部分步骤。
其中,计算机设备的结构中还可以包括通信接口93,用于计算机设备与其他设备或通信网络通信。
图10为本申请另一实施例提供的日志输出装置的结构示意图;参考附图10所示,本实施例提供了一种日志输出装置,该装置可以执行上述的日志输出方法,具体的,该日志输出装置100可以包括:
第一确定模块101,用于确定向日志输出接口发送数据的发送速率;
第二确定模块102,用于根据所述发送速率以及速率门限,确定操作系统内核的日志输出级别;
输出模块103,用于根据所述日志输出级别,向所述日志输出接口输出所述操作系统内核的日志。
可选的,第二确定模块102,具体用于在所述发送速率大于第一速率门限时,上调日志输出级别。
可选的,第二确定模块102,具体用于在所述发送速率大于第一速率门限并且当前的日志输出级别低于第一目标级别时,上调日志输出级别。
可选的,所述第一目标级别包括最高的日志级别。
可选的,第二确定模块102,还用于在所述发送速率小于第二速率门限时,下调日志输出级别,所述第二速率门限小于所述第一速率门限。
可选的,第二确定模块102,具体用于所述在所述发送速率小于第二速率门限时,下调日志输出级别,包括:
在所述发送速率小于第二速率门限并且当前的日志输出级别高于第二目标级别时,下调日志输出级别。
可选的,所述第二目标级别包括最低的日志级别,或者,初始的日志输出级别。
可选的,所述初始的日志输出级别是预设值或者是由用户配置。
可选的,所述速率门限是根据所述日志输出接口的最大速率确定。
可选的,第一确定模块101,具体用于通过操作系统内核以目标时长为周期,周期性确定向日志输出接口发送数据的发送速率。
可选的,第一确定模块101,具体用于:
获取第一字节数、第一时间戳、第二字节数和第二时间戳;其中,所述第一字节数为周期定时器本次超时处理器向日志输出接口发送数据的字节总数,所述第二字节数为周期定时器上一次超时处理器向日志输出接口发送数据的字节总数,所述第一时间戳为周期定时器本次超时的时间戳,所述第二时间戳为周期定时器上一次超时的时间戳;所述周期定时器的周期为所述目标时长;
根据所述第一字节数、所述第一时间戳、所述第二字节数和所述第二时间戳,确定向日志输出接口发送数据的发送速率。
可选的,第一确定模块101,还用于通过所述操作系统内核提供的接口函数,确定向日志输出接口发送数据的发送速率,所述接口函数的出口参数包括所述发送速率。
可选的,所述操作系统内核包括Linux操作系统内核。
可选的,所述日志输出接口包括串口。
图10所示装置可以执行图7所示实施例的方法,本实施例未详细描述的部分,可参考对图7所示实施例的相关说明。该技术方案的执行过程和技术效果参见图7所示实施例中的描述,在此不再赘述。
在一个可能的实现中,图10所示日志输出装置的结构可实现为一计算机设备。如图11所示,该计算机设备可以包括:处理器111和存储器112。其中,存储器112用于存储支持计算机设备执行上述图7所示实施例中提供的日志输出方法的程序,处理器111被配置为用于执行存储器112中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器111执行时能够实现如下步骤:
确定向日志输出接口发送数据的发送速率;
根据所述发送速率以及速率门限,确定操作系统内核的日志输出级别;
根据所述日志输出级别,向所述日志输出接口输出所述操作系统内核的日志。
可选的,处理器111还用于执行前述图7所示实施例中的全部或部分步骤。
其中,计算机设备的结构中还可以包括通信接口113,用于计算机设备与其他设备或通信网络通信。
另外,本申请实施例提供了一种计算机存储介质,用于储存计算机设备所用的计算机软件指令,其包含用于执行上述图2-图6所示方法实施例中日志输出方法所涉及的程序。
本申请实施例提供了一种计算机存储介质,用于储存计算机设备所用的计算机软件指令,其包含用于执行上述图7所示方法实施例中日志输出方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (17)

1.一种日志输出方法,其特征在于,包括:
根据第一字节数、第一时间戳、第二字节数和第二时间戳,确定向日志输出接口发送数据的发送速率;其中,所述第一字节数和所述第二字节数均为处理器向所述日志输出接口输出数据的字节总数,所述第一字节数与所述第一时间戳对应,所述第二字节数与所述第二时间戳对应,且所述第一时间戳晚于所述第二时间戳;
在所述发送速率大于软件对应的第一速率门限时,上调所述软件的日志输出级别;
根据所述日志输出级别,向所述日志输出接口输出所述软件的日志。
2.根据权利要求1所述的方法,其特征在于,所述在所述发送速率大于软件对应的第一速率门限时,上调所述软件的日志输出级别,包括:
在所述发送速率大于所述软件对应的第一速率门限并且所述软件当前的日志输出级别低于第一目标级别时,上调所述软件的日志输出级别。
3.根据权利要求2所述的方法,其特征在于,所述第一目标级别包括最高的日志级别。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述发送速率小于所述软件对应的第二速率门限时,下调所述软件的日志输出级别;其中,所述第二速率门限小于所述第一速率门限。
5.根据权利要求4所述的方法,其特征在于,所述在所述发送速率小于所述软件对应的第二速率门限时,下调所述软件的日志输出级别,包括:
在所述发送速率小于所述软件对应的第二速率门限并且所述软件当前的日志输出级别高于第二目标级别时,下调所述软件的日志输出级别。
6.根据权利要求5所述的方法,其特征在于,所述第二目标级别包括最低的日志级别,或者,初始的日志输出级别。
7.根据权利要求6所述的方法,其特征在于,所述初始的日志输出级别是预设值或者是由用户配置。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一速率门限是根据所述日志输出接口的最大速率确定。
9.根据权利要求1所述的方法,其特征在于,所述软件包括应用软件和/或操作系统内核。
10.根据权利要求1-7任一项所述的方法,其特征在于,所述根据第一字节数、第一时间戳、第二字节数和第二时间戳,确定向日志输出接口发送数据的发送速率,包括:
通过操作系统内核提供的接口函数对处理器向所述日志输出接口发送数据的字节总数进行计数;
定时唤醒速率线程;
在所述速率线程唤醒后,通过读取所述接口函数中的发送字节计数和时间戳,并通过前一次唤醒时记录的发送字节数和时间戳,计算所述发送速率。
11.根据权利要求10所述的方法,其特征在于,所述操作系统内核包括Linux操作系统内核。
12.根据权利要求1-7任一项所述的方法,其特征在于,所述日志输出接口包括串口。
13.一种日志输出方法,其特征在于,包括:
根据第一字节数、第一时间戳、第二字节数和第二时间戳,确定向日志输出接口发送数据的发送速率;其中,所述第一字节数和所述第二字节数均为处理器向所述日志输出接口输出数据的字节总数,所述第一字节数与所述第一时间戳对应,所述第二字节数与所述第二时间戳对应,且所述第一时间戳晚于所述第二时间戳;
在所述发送速率大于操作系统内核对应的第一速率门限时,上调所述操作系统内核的日志输出级别;
根据所述日志输出级别,向所述日志输出接口输出所述操作系统内核的日志。
14.一种日志输出装置,其特征在于,包括:
第一确定模块,用于根据第一字节数、第一时间戳、第二字节数和第二时间戳,确定向日志输出接口发送数据的发送速率;其中,所述第一字节数和所述第二字节数均为处理器向所述日志输出接口输出数据的字节总数,所述第一字节数与所述第一时间戳对应,所述第二字节数与所述第二时间戳对应,且所述第一时间戳晚于所述第二时间戳;
第二确定模块,用于在所述发送速率大于软件对应的第一速率门限时,上调所述软件的日志输出级别;
输出模块,用于根据所述日志输出级别,向所述日志输出接口输出所述软件的日志。
15.一种日志输出装置,其特征在于,包括:
第一确定模块,用于根据第一字节数、第一时间戳、第二字节数和第二时间戳,确定向日志输出接口发送数据的发送速率;其中,所述第一字节数和所述第二字节数均为处理器向所述日志输出接口输出数据的字节总数,所述第一字节数与所述第一时间戳对应,所述第二字节数与所述第二时间戳对应,且所述第一时间戳晚于所述第二时间戳;
第二确定模块,用于在所述发送速率大于操作系统内核对应的第一速率门限时,上调操作系统内核的日志输出级别;
输出模块,用于根据所述日志输出级别,向所述日志输出接口输出所述操作系统内核的日志。
16.一种计算机设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至12中任一项所述的方法。
17.一种计算机设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求13所述的方法。
CN201911329844.XA 2019-12-20 2019-12-20 日志输出方法、装置及设备 Active CN113010366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911329844.XA CN113010366B (zh) 2019-12-20 2019-12-20 日志输出方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911329844.XA CN113010366B (zh) 2019-12-20 2019-12-20 日志输出方法、装置及设备

Publications (2)

Publication Number Publication Date
CN113010366A CN113010366A (zh) 2021-06-22
CN113010366B true CN113010366B (zh) 2024-05-24

Family

ID=76382870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911329844.XA Active CN113010366B (zh) 2019-12-20 2019-12-20 日志输出方法、装置及设备

Country Status (1)

Country Link
CN (1) CN113010366B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821410A (zh) * 2021-09-23 2021-12-21 新华三信息安全技术有限公司 一种日志处理方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327965A (ja) * 1998-05-19 1999-11-30 Nissin Electric Co Ltd アプリケーションのログレベルの動的変更方法
CN106681891A (zh) * 2015-11-05 2017-05-17 阿里巴巴集团控股有限公司 一种Java应用系统中调整日志级别的方法及装置
CN106775885A (zh) * 2016-12-26 2017-05-31 中国建设银行股份有限公司 一种日志输出控制方法和系统及银行管理系统
CN107291615A (zh) * 2017-05-19 2017-10-24 北京北信源软件股份有限公司 一种web前端日志输出方法与装置
CN107391355A (zh) * 2017-07-25 2017-11-24 郑州云海信息技术有限公司 一种控制内核模块日志输出的方法与装置
CN108897663A (zh) * 2018-06-19 2018-11-27 新华三技术有限公司 日志输出控制方法和装置
CN109992480A (zh) * 2019-04-11 2019-07-09 苏州浪潮智能科技有限公司 一种日志级别修改方法、系统及电子设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996680B2 (en) * 2006-09-27 2011-08-09 Hewlett-Packard Development Company, L.P. Secure data log management

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11327965A (ja) * 1998-05-19 1999-11-30 Nissin Electric Co Ltd アプリケーションのログレベルの動的変更方法
CN106681891A (zh) * 2015-11-05 2017-05-17 阿里巴巴集团控股有限公司 一种Java应用系统中调整日志级别的方法及装置
CN106775885A (zh) * 2016-12-26 2017-05-31 中国建设银行股份有限公司 一种日志输出控制方法和系统及银行管理系统
CN107291615A (zh) * 2017-05-19 2017-10-24 北京北信源软件股份有限公司 一种web前端日志输出方法与装置
CN107391355A (zh) * 2017-07-25 2017-11-24 郑州云海信息技术有限公司 一种控制内核模块日志输出的方法与装置
CN108897663A (zh) * 2018-06-19 2018-11-27 新华三技术有限公司 日志输出控制方法和装置
CN109992480A (zh) * 2019-04-11 2019-07-09 苏州浪潮智能科技有限公司 一种日志级别修改方法、系统及电子设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种流量动态可控的异步日志系统设计;金鑫;朱默宁;;合肥工业大学学报(自然科学版);20161128(11);全文 *

Also Published As

Publication number Publication date
CN113010366A (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
CN108173698B (zh) 网络服务管理方法、装置、服务器及存储介质
KR102153840B1 (ko) 위험 식별 방법, 클라이언트 디바이스 및 위험 식별 시스템
KR101770673B1 (ko) 작업부하 밀도를 증가시키고 또한 에너지 효율성을 개선하기 위한 전력 균형화
US8370846B2 (en) Task execution device and method
CN106959889A (zh) 一种服务器资源调整的方法和装置
US10552320B2 (en) Using a projected out of memory score to selectively terminate a process without transitioning to a background mode
CN113645150B (zh) 传输速率控制方法、装置、电子设备和可读存储介质
US10890960B2 (en) Method and apparatus for limiting rack power consumption
US9377834B2 (en) Adjusting working frequency of a processor based on monitored idle time
CN109240836B (zh) 一种用于配置消息队列的消息的方法和装置
EP4087198A1 (en) Communication method, device, and system based on model training
WO2020102928A1 (zh) 一种无线信号发送方法、无线信号发送装置及终端设备
CN113010366B (zh) 日志输出方法、装置及设备
CN106775885B (zh) 一种日志输出控制方法和系统及银行管理系统
CN111245732A (zh) 一种流量控制方法、装置及设备
CN110601872A (zh) 一种传输方法及装置、存储介质
CN103840910A (zh) 一种数据传输控制方法及装置
CN117119201B (zh) 压缩视频的传输方法、装置、设备及存储介质
CN112715040A (zh) 一种降低功耗的方法、终端设备及存储介质
CN110650206B (zh) 分布式存储系统中io流量控制方法、装置和存储介质
CN116991582A (zh) 保留内存自适应配置方法、装置、设备及存储介质
CN105183398A (zh) 一种存储设备、电子设备及数据处理方法
US9639137B2 (en) Control method and electronic device
WO2018057130A1 (en) Methods and apparatus to reduce computing device power consumption
CN112463416A (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
GR01 Patent grant
GR01 Patent grant