CN104252405A - 日志信息的输出方法及装置 - Google Patents

日志信息的输出方法及装置 Download PDF

Info

Publication number
CN104252405A
CN104252405A CN201310260929.3A CN201310260929A CN104252405A CN 104252405 A CN104252405 A CN 104252405A CN 201310260929 A CN201310260929 A CN 201310260929A CN 104252405 A CN104252405 A CN 104252405A
Authority
CN
China
Prior art keywords
log information
buffer queue
log
thread
unit
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
CN201310260929.3A
Other languages
English (en)
Other versions
CN104252405B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310260929.3A priority Critical patent/CN104252405B/zh
Priority to PCT/CN2014/080705 priority patent/WO2014206289A1/en
Publication of CN104252405A publication Critical patent/CN104252405A/zh
Priority to US14/824,469 priority patent/US20150347305A1/en
Application granted granted Critical
Publication of CN104252405B publication Critical patent/CN104252405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种日志信息的输出方法及装置,涉及信息技术领域,可以提高各线程的任务执行效率和执行性能。所述方法包括:首先获取多个应用线程输出的多个日志信息,然后依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中,最后将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。

Description

日志信息的输出方法及装置
技术领域
本发明涉及信息技术领域,特别涉及一种日志信息的输出方法及装置。
背景技术
随着终端设备的不断发展,终端设备中的应用程序种类也越来越多,通常应用程序在运行的过程中,都会有多个线程同时存在,为了调试和定位应用程序运行过程中的问题,每个线程都会有大量的日志信息需要输出到日志信息共享文件中。
目前各个线程是按照一定顺序将各自的日志信息配置到日志信息共享文件中,即当某一个线程正在进行将输出的日志信息配置到日志信息共享文件中的操作时,其它线程必须等到该线程向日志信息共享文件中配置日志信息的操作完成后,才能向日志信息共享文件中再次配置日志信息,因此通过现有日志信息的输出方式进行日志信息输出,会使得各线程在向日志信息共享文件中配置日志信息之前的等待时间较长,并且各线程将输出的日志信息配置到日志信息共享文件中的操作耗时也较长,从而造成各个线程的任务执行效率较低。
发明内容
本发明实施例提供一种日志信息的输出方法和装置,可以提高各线程的任务执行效率。
本发明实施例采用的技术方案为:
一种日志信息的输出方法,包括:
获取多个应用线程输出的多个日志信息;
依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中;
将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。
一种日志信息的输出装置,包括:
获取单元,用于获取多个应用线程输出的多个日志信息;
缓存单元,用于依次将所述获取单元获取的多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中;
配置单元,用于将所述缓存单元缓存的位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。
本发明实施例提供的日志信息的输出方法及装置,首先获取多个应用线程输出的多个日志信息,然后依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中,最后将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。与目前各个线程是按照一定顺序将各自输出的日志信息直接配置在日志信息共享文件中,即当某一个线程正在将输出的日志信息配置到日志信息共享文件中时,其它线程必须等到该线程对日志信息共享文件的配置操作完成后,才能向日志信息共享文件中再次配置日志信息相比,本发明实施例通过配置独立的系统线程建立并维护一个日志信息缓存队列,并且通过系统线程从该日志信息缓存队列获取日志信息,并将获取到的日志信息配置在日志信息共享文件中,使得其它线程只需要将输出的日志信息缓存在该日志信息缓存队列中后,就可以立刻执行其他任务,而不用等到将输出的日志信息配置在日志信息共享文件中的操作完成后,才能执行其他任务,从而可以提高各线程的任务执行效率和执行性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种日志信息的输出方法流程图;
图2为本发明实施例提供的另一种日志信息的输出方法流程图;
图3为本发明实施例提供的一种日志信息的输出装置结构示意图;
图4为本发明实施例提供的另一种日志信息的输出装置结构示意图;
图5为本发明实施例提供的日志信息缓存队列示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
本发明实施例提供一种日志信息的输出方法,如图1所示,所述方法包括:
101、获取多个应用线程输出的多个日志信息。
其中,在每一个应用线程运行时都会有大量的日志信息输出,日志信息用于记录各个应用线程运行过程中进行各种操作的结果数据。
102、依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中。
其中,所述日志信息缓存队列可以用于保存不同应用线程输出的日志信息,日志信息缓存队列中缓存日志信息的形式具体可以为缓存日志信息对应的内存地址,本发明实施例不做限定。由于各个应用线程将输出的日志信息缓存在日志信息缓存队列的操作是在内存中进行的,而在内存中进行缓存操作的耗时非常少,因此与各个应用线程直接将输出的日志信息配置在日志信息共享文件的操作相比,可以大量较少操作耗时,进一步提升了各线程的任务执行效率。
对于本发明实施例,具体是通过创建独立的系统线程建立和维护上述日志信息缓存队列,并通过系统线程从该日志信息缓存队列中获取缓存的日志信息,从而完成向日志信息共享文件中配置日志信息的操作。日志信息缓存队列的大小具体可以根据终端设备的内存大小来进行配置,日志信息缓存队列的数据结构具体可以如下所示:
其中,queue为日志信息指针,用于标识日志信息在指针数组中的位置,QUEUE_SIZE为日志信息指针数组的长度,用于标识日志信息缓存队列的长度,head为日志信息出队下标位置,用于标识需要从日志信息缓存队列中获取的日志信息在指针数组中的位置,tail为日志信息入队下标位置,用于标识需要保存在日志信息缓存队列中的日志信息在指针数组中的位置,full用于标识日志信息缓存队列中是否还有剩余存储空间,empty用于标识日志信息缓存队列是否为空。
由于本发明实施例中的日志信息缓存队列为多线程下的共享资源,因此进行将日志信息保存在日志信息缓存队列和从日志信息缓存队列获取日志信息的操作时,都需要对日志信息缓存队列加互斥锁,从而保证对共享资源操作的完整性。当操作完成后对日志信息缓存队列进行解锁。
对于本发明实施例,向日志信息缓存到缓存队列中缓存日志信息的具体程序实现过程可以包括:在将日志信息缓存在日志信息缓存队列之前,首先对该日志信息缓存队列加互斥锁,然后判断日志信息缓存队列对应的full标志位是否为true,若标志位为true,说明日志信息缓存队列内存空间已满,无法再对该日志信息进行保存,此时对该日志信息缓存队列进行解锁,然后向维护该日志信息缓存队列的系统线程发送提示消息,以提示所述系统线程日志信息缓存队列中存在可以获取并配置到日志信息共享文件中的日志信息;若日志信息缓存队列对应的full标志位为false,说明日志信息缓存队列的内存空间未满,将该日志信息的指针赋值在下标位置为tail的queue数组中,以完成对该日志信息的入队操作,然后对日志信息缓存队列进行解锁,并且向系统线程发送提示消息,以提示所述系统线程日志信息缓存队列中存在可以配置到日志信息共享文件中的日志信息。
其中,判断日志信息缓存队列的内存空间是否已满的过程具体可以包括:将任意一个日志信息的指针赋值在下标位置为tail的queue数组中后,将tail值加1,并且判断当前tail的值是否等于数组最大长度,若等于数组最大长度,则将tail值配置为0,然后判断tail值是否等于head值,若不等于数组最大长度,则直接判断tail值是否等于head值,当tail值等于head值时,说明该缓存队列中一直在进行日志信息入队操作,但是缓存队列中没有日志信息进行出队操作,或者进行入队操作的日志信息的数量大于进行出队操作的日志信息的数量,并且数量差值等于日志信息缓存队列中可以缓存的日志信息的上限数量,从而使得日志信息缓存队列的内存空间已满,此时将full标志位配置为true。当tail值不等于head值时,说明该缓存队列中进行入队操作的日志信息的数量与进行出队操作的日志信息的数量保持平衡,使得日志信息缓存队列的内存空间始终未满,此时将full标志位配置为false,以标识当前日志信息缓存队列的内存空间未满,说明此时可以保存该日志信息。
103、将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。
其中,日志信息共享文件具体可以为设备文件或者普通文件,可以用于保存各个线程输出的日志信息。本发明实施例中的日志信息缓存队列具体可以为先入先出队列,因此在从日志信息缓存队列中获取日志信息时,是从队头获取一个日志信息。
本发明实施例提供的一种日志信息的输出方法,首先获取多个应用线程输出的多个日志信息,然后依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中,最后将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。与目前各个线程是按照一定顺序将各自输出的日志信息直接配置在日志信息共享文件中,即当某一个线程正在将输出的日志信息配置到日志信息共享文件中时,其它线程必须等到该线程对日志信息共享文件的配置操作完成后,才能向日志信息共享文件中再次配置日志信息相比,本发明实施例通过配置独立的系统线程建立并维护一个日志信息缓存队列,并且通过系统线程从该日志信息缓存队列获取日志信息,并将获取到的日志信息配置在日志信息共享文件中,使得其它线程只需要将输出的日志信息缓存在该日志信息缓存队列中后,就可以立刻执行其他任务,而不用等待将输出的日志信息配置在日志信息共享文件中的操作完成后,才能执行其他任务,从而可以提高各线程的任务执行效率和执行性能。
进一步地,本发明实施例提供另一种日志信息的输出方法,如图2所示,所述方法包括:
201、获取多个应用线程输出的多个日志信息。
其中,在每一个应用线程运行时都会有大量的日志信息输出,日志信息用于记录各个应用线程运行过程中进行各种操作的结果数据。
202a、依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中。
其中,所述系统线程用于建立和维护所述日志信息缓存队列。所述日志信息缓存队列可以用于保存不同应用线程输出的日志信息,日志信息缓存队列中保存日志信息的形式具体可以为保存日志信息对应的内存地址。日志信息缓存队列的大小具体可以根据终端设备的内存大小来定,日志信息缓存队列的数据结构具体可以参考图1中的数据结构,在此不再赘述。
对于本发明实施例,由于各个应用线程将输出的日志信息缓存在日志信息缓存队列的操作是在内存中进行的,而在内存中进行缓存操作的耗时非常少,因此与各个应用线程直接将输出的日志信息配置在日志信息共享文件的操作相比,可以大量减少操作耗时,从而进一步提升了各线程的任务执行效率。本发明实施例中的日志信息缓存队列为多线程下的共享资源,因此进行将日志信息保存在日志信息缓存队列和从日志信息缓存队列获取日志信息时,都需要对日志信息缓存队列加互斥锁,从而保证对共享资源操作的完整性。当操作完成后进行解锁操作。
对于本发明实施例,由于各个应用线程输出日志信息的时间是有先后顺序的,因此优选地,步骤202a具体可以为按照所述每一个日志信息对应的输出时间由先到后的顺序,依次将所述每一个日志信息缓存到所述日志信息缓存队列中。其中,将每一个日志信息缓存到系统线程建立的日志信息缓存队列中的步骤具体可以包括:首先为所述日志信息缓存队列配置互斥锁,然后将所述日志信息缓存到配置有所述互斥锁的所述日志信息缓存队列中,最后对所述日志信息缓存队列进行解锁。
例如,当前有3个应用线程,线程1、线程2、线程3在输出日志信息,线程1、线程2、线程3分别输出的日志信息为日志信息1、日志信息2、日志信息3,按照各个日志信息输出时间的先后顺序进行排序后,输出的日志信息的顺序为日志信息2、日志信息1、日志信息3,此时首先为日志信息缓存队列配置互斥锁,然后将日志信息2缓存在该日志信息缓存队列中,最后对日志信息缓存队列进行解锁,按照此方式,再依次将日志信息1和日志信息3缓存在日志信息缓存队列中,此时日志信息缓存队列中各个日志信息的排列顺序可以如图5所示。
与步骤202a并列的步骤202b、若不存在日志信息,则将所述系统线程配置为挂起状态。
其中,通过将系统线程配置为挂起状态,可以节省系统线程所占用的系统资源,从而可以为其它应用线程提供更多的系统资源,从而进一步提升各个应用线程的任务执行效率。
进一步地,当该系统线程判断有应用线程对日志信息缓存队列进行缓存操作时,该系统线程重新进入正常工作状态。其中,应用线程可以通过向系统线程发送入队提示消息以唤醒系统线程进入正常工作状态。
203、将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。
其中,日志信息共享文件具体可以为设备文件或者普通文件,可以用于保存各个线程输出的日志信息。本发明实施例中的日志信息缓存队列具体可以为先入先出队列,因此每一次在从日志信息缓存队列中获取日志信息时,是从队头获取一个日志信息。
对于本发明实施例,从日志信息缓存队列中获取日志信息的具体程序实现过程可以包括:从日志信息缓存队列获取日志信息之前,首先对该日志信息缓存队列加互斥锁,然后取出出队下标位置为head的queue数组中的日志信息,并将head值加1,以使得日志信息指针指向下一个日志信息的出队位置,然后对日志信息缓存队列进行解锁,完成本次日志信息的获取操作。当需要从日志信息缓存队列中再次获取日志信息时,首先对日志信息缓存队列加互斥锁,然后获取上述日志信息指针指向的下一个出队位置上的日志信息,并再次将head值加1,以使得日志信息指针指向下一个日志信息的出队位置,然后对日志信息缓存队列进行解锁,以完成本次日志信息的获取操作。依次类推,直到将日志信息缓存队列中缓存的日志信息全部取出。
其中,判断日志信息缓存队列是否还存在日志信息的步骤具体可以包括:当取出出队下标位置为head的queue数组中的日志信息,并将head值加1后,首先判断当前head的值是否等于数组最大长度,若等于数组最大长度,则将head值配置为0,然后判断head值是否等于tail值,若不等于数组最大长度,则直接判断head值是否等于tail值,当head值等于tail值时,说明该日志信息缓存队列中一直在进行日志信息的出队操作,但是日志信息缓存队列中没有新的日志信息进行入队操作,或者进行出队操作的日志信息的数量大于进行入队操作的日志信息的数量,并且数量差值等于日志信息缓存队列中可缓存的日志信息数量的上限,从而使得日志信息缓存队列中缓存的日志信息全部被取出,此时,将empty标志位配置为true,以标识当前队列为空。当head值不等于tail值时,说明该缓存队列中进行入队操作的日志信息的数量与进行出队操作的日志信息的数量保持平衡,将empty标志位配置为false,以标识当前日志信息缓存队列不为空,还缓存有可以被获取的日志信息。
204、释放所述日志信息在所述日志信息缓存队列中对应的内存空间。
其中,通过释放日志信息在日志信息缓存队列中对应的内存空间,可以为其它线程提供保存待输出日志信息的内存空间,保证日志信息缓存队列内存空间的可持续性。
本发明实施例提供的另一种日志信息的输出方法,首先获取多个应用线程输出的多个日志信息,然后依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中,最后将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。与目前各个线程是按照一定顺序将各自输出的日志信息直接配置在日志信息共享文件中,即当某一个线程正在将输出的日志信息配置到日志信息共享文件中时,其它线程必须等到该线程对日志信息共享文件的配置操作完成后,才能向日志信息共享文件中再次配置日志信息相比,本发明实施例通过配置独立的系统线程建立并维护一个日志信息缓存队列,并且通过系统线程从该日志信息缓存队列获取日志信息,并将获取到的日志信息配置在日志信息共享文件中,使得其它线程只需要将输出的日志信息缓存在该日志信息缓存队列中后,就可以立刻执行其他任务,而不用等待将输出的日志信息配置在日志信息共享文件中的操作完成后,才能执行其他任务,从而可以提高各线程的任务执行效率和执行性能。
进一步地,作为图1所示方法的具体实现,本发明实施例提供一种日志信息的输出装置,可以应用于终端设备中,例如应用于手机、计算机、电脑本等,如图3所示,所述装置包括:获取单元31、缓存单元32、配置单元33。
获取单元31,可以用于获取多个应用线程输出的多个日志信息。
缓存单元32,可以用于依次将所述获取单元31获取的多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中。
配置单元33,可以用于将所述缓存单元32缓存的位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。
需要说明的是,本发明实施例提供的日志信息的输出装置所涉及各功能单元的其他相应描述,可以参考图1中的对应描述,在此不再赘述。
再进一步地,作为图2所示方法的具体实现,本发明实施例提供另一种日志信息的输出装置,可以应用于终端设备中,例如应用于手机、计算机、电脑本等,如图4所示,所述装置包括:获取单元41、缓存单元42、配置单元43、创建单元44、解锁单元45、释放单元46。
获取单元41,可以用于获取多个应用线程输出的多个日志信息。
缓存单元42,可以用于依次将所述获取单元41获取的多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中。
配置单元43,可以用于将所述缓存单元42缓存的位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。
创建单元44,可以用于创建所述系统线程,所述系统线程用于建立和维护所述日志信息缓存队列。
缓存单元42,可以用于按照所述每一个日志信息对应的输出时间由先到后的顺序,依次将所述每一个日志信息缓存到所述日志信息缓存队列中。
配置单元43,可以用于为所述日志信息缓存队列配置互斥锁。
缓存单元42,可以用于将所述日志信息缓存到配置有互斥锁的所述日志信息缓存队列中。
解锁单元45,可以用于对所述日志信息缓存队列进行解锁。
配置单元43,还可以用于若不存在日志信息,则将所述系统线程配置为挂起状态。
释放单元46,可以用于释放所述日志信息在所述日志信息缓存队列中对应的内存空间。
需要说明的是,本发明实施例提供的日志信息的输出装置所涉及各功能单元的其他相应描述,可以参考图2中的对应描述,在此不再赘述。
本发明实施例提供的日志信息的输出装置,首先获取多个应用线程输出的多个日志信息,然后依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中,最后将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。与目前各个线程是按照一定顺序将各自输出的日志信息直接配置在日志信息共享文件中,即当某一个线程正在将输出的日志信息配置到日志信息共享文件中时,其它线程必须等到该线程对日志信息共享文件的配置操作完成后,才能向日志信息共享文件中再次配置日志信息相比,本发明实施例通过配置独立的系统线程建立并维护一个日志信息缓存队列,并且通过系统线程从该日志信息缓存队列获取日志信息,并将获取到的日志信息配置在日志信息共享文件中,使得其它线程只需要将输出的日志信息缓存在该日志信息缓存队列中后,就可以立刻执行其他任务,而不用等待将输出的日志信息配置在日志信息共享文件中的操作完成后,才能执行其他任务,从而可以提高各线程的任务执行效率和执行性能。
本发明实施例提供的日志信息的输出装置可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的日志信息的输出方法及装置可以适用于信息技术领域,但不仅限于此。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (12)

1.一种日志信息的输出方法,其特征在于,包括:
获取多个应用线程输出的多个日志信息;
依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中;
将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。
2.根据权利要求1所述的日志信息的输出方法,其特征在于,所述获取多个应用线程输出的多个日志信息的步骤之前,还包括:
创建所述系统线程,所述系统线程用于建立和维护所述日志信息缓存队列。
3.根据权利要求1所述的日志信息的输出方法,其特征在于,所述依次将所述多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中的步骤包括:
按照所述每一个日志信息对应的输出时间由先到后的顺序,依次将所述每一个日志信息缓存到所述日志信息缓存队列中。
4.根据权利要求3所述的日志信息的输出方法,其特征在于,所述将每一个日志信息缓存到系统线程建立的日志信息缓存队列中的步骤包括:
为所述日志信息缓存队列配置互斥锁;
将所述日志信息缓存到配置有所述互斥锁的所述日志信息缓存队列中;
对所述日志信息缓存队列进行解锁。
5.根据权利要求1所述的日志信息的输出方法,其特征在于,所述获取多个应用线程输出的多个日志信息的步骤之后,还包括:
若不存在日志信息,则将所述系统线程配置为挂起状态。
6.根据权利要求1所述的日志信息的输出方法,其特征在于,所述将位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中的步骤之后,还包括:
释放所述日志信息在所述日志信息缓存队列中对应的内存空间。
7.一种日志信息的输出装置,其特征在于,包括:
获取单元,用于获取多个应用线程输出的多个日志信息;
缓存单元,用于依次将所述获取单元获取的多个日志信息中的每一个日志信息,缓存到系统线程建立的日志信息缓存队列中;
配置单元,用于将所述缓存单元缓存的位于所述日志信息缓存队列队头的日志信息配置到日志信息共享文件中。
8.根据权利要求7所述的日志信息的输出装置,其特征在于,所述装置还包括:
创建单元,用于创建所述系统线程,所述系统线程用于建立和维护所述日志信息缓存队列。
9.根据权利要求7所述的日志信息的输出装置,其特征在于,
所述缓存单元,用于按照所述每一个日志信息对应的输出时间由先到后的顺序,依次将所述每一个日志信息缓存到所述日志信息缓存队列中。
10.根据权利要求9所述的日志信息的输出装置,其特征在于,所述装置还包括:解锁单元;
所述配置单元,还用于为所述日志信息缓存队列配置互斥锁;
所述缓存单元,用于将所述日志信息缓存到配置有互斥锁的所述日志信息缓存队列中;
所述解锁单元,用于对所述日志信息缓存队列进行解锁。
11.根据权利要求7所述的日志信息的输出装置,其特征在于,
所述配置单元,还用于若不存在日志信息,则将所述系统线程配置为挂起状态。
12.根据权利要求7所述的日志信息的输出装置,其特征在于,所述装置还包括:
释放单元,用于释放所述日志信息在所述日志信息缓存队列中对应的内存空间。
CN201310260929.3A 2013-06-26 2013-06-26 日志信息的输出方法及装置 Active CN104252405B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310260929.3A CN104252405B (zh) 2013-06-26 2013-06-26 日志信息的输出方法及装置
PCT/CN2014/080705 WO2014206289A1 (en) 2013-06-26 2014-06-25 Method and apparatus for outputting log information
US14/824,469 US20150347305A1 (en) 2013-06-26 2015-08-12 Method and apparatus for outputting log information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310260929.3A CN104252405B (zh) 2013-06-26 2013-06-26 日志信息的输出方法及装置

Publications (2)

Publication Number Publication Date
CN104252405A true CN104252405A (zh) 2014-12-31
CN104252405B CN104252405B (zh) 2018-02-27

Family

ID=52141071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310260929.3A Active CN104252405B (zh) 2013-06-26 2013-06-26 日志信息的输出方法及装置

Country Status (3)

Country Link
US (1) US20150347305A1 (zh)
CN (1) CN104252405B (zh)
WO (1) WO2014206289A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871780A (zh) * 2015-01-21 2016-08-17 杭州迪普科技有限公司 会话日志发送方法及装置
CN106502875A (zh) * 2016-10-21 2017-03-15 过冬 一种基于云计算的日志生成方法及系统
CN106681658A (zh) * 2016-11-25 2017-05-17 天津津航计算技术研究所 基于多线程实现数据记录仪海量数据高速转存的方法
CN106951488A (zh) * 2017-03-14 2017-07-14 海尔优家智能科技(北京)有限公司 一种日志记录方法和装置
CN107643942A (zh) * 2016-07-21 2018-01-30 杭州海康威视数字技术股份有限公司 一种状态信息的存储方法及装置
CN108205476A (zh) * 2017-12-27 2018-06-26 郑州云海信息技术有限公司 一种多线程日志输出的方法及装置
CN108509327A (zh) * 2018-04-20 2018-09-07 深圳市文鼎创数据科技有限公司 一种日志输出方法、装置、终端设备和存储介质
CN108829342A (zh) * 2018-05-09 2018-11-16 青岛海信宽带多媒体技术有限公司 一种日志存储方法、系统及存储装置
CN109347899A (zh) * 2018-08-22 2019-02-15 北京百度网讯科技有限公司 在分布式存储系统中写入日志数据的方法
CN111045782A (zh) * 2019-11-20 2020-04-21 北京奇艺世纪科技有限公司 日志处理方法、装置、电子设备和计算机可读存储介质
CN111367867A (zh) * 2020-03-05 2020-07-03 腾讯云计算(北京)有限责任公司 日志信息处理方法、装置、电子设备及存储介质
CN113190410A (zh) * 2021-05-10 2021-07-30 芯讯通无线科技(上海)有限公司 日志收集方法、系统、客户端和存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017058788A (ja) * 2015-09-14 2017-03-23 株式会社東芝 通信装置、通信方法、及び通信プログラム
CN105468502A (zh) * 2015-11-30 2016-04-06 北京奇艺世纪科技有限公司 一种日志收集的方法、装置和系统
US9747222B1 (en) * 2016-03-31 2017-08-29 EMC IP Holding Company LLC Dynamic ingestion throttling of data log
CN106708578B (zh) * 2016-12-23 2021-11-09 北京五八信息技术有限公司 基于双线程的日志输出方法及装置
US11163449B2 (en) 2019-10-17 2021-11-02 EMC IP Holding Company LLC Adaptive ingest throttling in layered storage systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法
US20090182798A1 (en) * 2008-01-11 2009-07-16 Mediatek Inc. Method and apparatus to improve the effectiveness of system logging
US8074010B2 (en) * 2004-11-23 2011-12-06 Efficient Memory Technology Intelligent memory banks for storing vectors

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2758311B2 (ja) * 1992-05-28 1998-05-28 富士通株式会社 複合システムにおけるログファイル制御方式
US5544359A (en) * 1993-03-30 1996-08-06 Fujitsu Limited Apparatus and method for classifying and acquiring log data by updating and storing log data
JPH07146671A (ja) * 1993-06-16 1995-06-06 Mitsubishi Electric Corp 大型映像表示装置
US5778243A (en) * 1996-07-03 1998-07-07 International Business Machines Corporation Multi-threaded cell for a memory
US20020165902A1 (en) * 2001-05-03 2002-11-07 Robb Mary Thomas Independent log manager
US7155727B2 (en) * 2001-06-19 2006-12-26 Sun Microsystems, Inc. Efficient data buffering in a multithreaded environment
JP4421230B2 (ja) * 2003-08-12 2010-02-24 株式会社日立製作所 性能情報分析方法
FR2881306B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede de journalisation non intrusive d'evenements externes aupres d'un processus applicatif, et systeme mettant en oeuvre ce procede
US7480672B2 (en) * 2005-03-31 2009-01-20 Sap Ag Multiple log queues in a database management system
US7616093B2 (en) * 2007-07-02 2009-11-10 International Business Machines Corporation Method and system for identifying expired RFID data
US8239633B2 (en) * 2007-07-11 2012-08-07 Wisconsin Alumni Research Foundation Non-broadcast signature-based transactional memory
WO2011002818A1 (en) * 2009-06-29 2011-01-06 Cyberdefender Corporation Systems and methods for operating an anti-malware network on a cloud computing platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074010B2 (en) * 2004-11-23 2011-12-06 Efficient Memory Technology Intelligent memory banks for storing vectors
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法
US20090182798A1 (en) * 2008-01-11 2009-07-16 Mediatek Inc. Method and apparatus to improve the effectiveness of system logging

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
叶培顺等: "《基于面向对象系统日志管理模块的设计与实现》", 《科学技术与工程》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871780B (zh) * 2015-01-21 2020-01-03 杭州迪普科技股份有限公司 会话日志发送方法及装置
CN105871780A (zh) * 2015-01-21 2016-08-17 杭州迪普科技有限公司 会话日志发送方法及装置
CN107643942B (zh) * 2016-07-21 2020-11-03 杭州海康威视数字技术股份有限公司 一种状态信息的存储方法及装置
CN107643942A (zh) * 2016-07-21 2018-01-30 杭州海康威视数字技术股份有限公司 一种状态信息的存储方法及装置
CN106502875A (zh) * 2016-10-21 2017-03-15 过冬 一种基于云计算的日志生成方法及系统
CN106681658A (zh) * 2016-11-25 2017-05-17 天津津航计算技术研究所 基于多线程实现数据记录仪海量数据高速转存的方法
CN106951488A (zh) * 2017-03-14 2017-07-14 海尔优家智能科技(北京)有限公司 一种日志记录方法和装置
CN108205476A (zh) * 2017-12-27 2018-06-26 郑州云海信息技术有限公司 一种多线程日志输出的方法及装置
CN108509327A (zh) * 2018-04-20 2018-09-07 深圳市文鼎创数据科技有限公司 一种日志输出方法、装置、终端设备和存储介质
CN108829342A (zh) * 2018-05-09 2018-11-16 青岛海信宽带多媒体技术有限公司 一种日志存储方法、系统及存储装置
CN108829342B (zh) * 2018-05-09 2021-06-25 青岛海信宽带多媒体技术有限公司 一种日志存储方法、系统及存储装置
CN109347899A (zh) * 2018-08-22 2019-02-15 北京百度网讯科技有限公司 在分布式存储系统中写入日志数据的方法
CN111045782A (zh) * 2019-11-20 2020-04-21 北京奇艺世纪科技有限公司 日志处理方法、装置、电子设备和计算机可读存储介质
CN111045782B (zh) * 2019-11-20 2024-01-12 北京奇艺世纪科技有限公司 日志处理方法、装置、电子设备和计算机可读存储介质
CN111367867A (zh) * 2020-03-05 2020-07-03 腾讯云计算(北京)有限责任公司 日志信息处理方法、装置、电子设备及存储介质
CN111367867B (zh) * 2020-03-05 2023-03-21 腾讯云计算(北京)有限责任公司 日志信息处理方法、装置、电子设备及存储介质
CN113190410A (zh) * 2021-05-10 2021-07-30 芯讯通无线科技(上海)有限公司 日志收集方法、系统、客户端和存储介质

Also Published As

Publication number Publication date
US20150347305A1 (en) 2015-12-03
CN104252405B (zh) 2018-02-27
WO2014206289A1 (en) 2014-12-31

Similar Documents

Publication Publication Date Title
CN104252405A (zh) 日志信息的输出方法及装置
CN108234641B (zh) 基于分布式一致性协议实现的数据读写方法及装置
CN106790599B (zh) 一种基于多核无锁环形缓冲区的共生虚拟机通信方法
CN100504827C (zh) 在次序混乱的dma命令队列中建立命令次序
US8516492B2 (en) Soft partitions and load balancing
CN102945278B (zh) 一种数据库记录重做日志的方法和装置
CN107450971A (zh) 任务处理方法及装置
CN103150149B (zh) 处理数据库重做数据的方法和装置
CN110389905B (zh) 资源释放方法、资源分配方法、设备和计算机程序产品
JP2008507201A5 (zh)
CN104461400B (zh) 处理访存请求冲突的方法和装置
CN111625546B (zh) 一种数据写入方法、装置、设备、介质
CN103647850A (zh) 一种分布式版本控制系统的数据处理方法、设备及系统
CN103634379A (zh) 一种分布式存储空间的管理方法和分布式存储系统
CN104063355A (zh) 对服务器集群进行配置的方法及配置中心服务器
CN106951488A (zh) 一种日志记录方法和装置
CN108924008A (zh) 一种双控制器数据通信方法、装置、设备及可读存储介质
CN101145113A (zh) 一种多线程访问间接寄存器的调度方法
CN109086168A (zh) 一种利用硬件备份固态硬盘写速度的方法及其系统
CN106250229A (zh) 事件处理的方法及装置
US11385900B2 (en) Accessing queue data
CN103678360A (zh) 一种分布式文件系统的数据存储方法和装置
CN104216684A (zh) 一种多核并行系统及其数据处理方法
CN116701246B (zh) 一种提升缓存带宽的方法、装置、设备及存储介质
CN103809947B (zh) 一种开发需求的自动发布方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant