CN110231921B - 日志打印方法、装置、设备及计算机可读存储介质 - Google Patents
日志打印方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110231921B CN110231921B CN201910500378.0A CN201910500378A CN110231921B CN 110231921 B CN110231921 B CN 110231921B CN 201910500378 A CN201910500378 A CN 201910500378A CN 110231921 B CN110231921 B CN 110231921B
- Authority
- CN
- China
- Prior art keywords
- log
- level
- log level
- hash table
- printing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007639 printing Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000015654 memory Effects 0.000 claims description 63
- 238000001514 detection method Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种日志打印方法,涉及金融科技领域,该方法包括:当检测到交易请求时,获取所述交易请求中携带的交易标识;根据所述交易标识查找预设的日志级别控制哈希表,判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别;若所述日志级别控制哈希表中存在与所述交易标识对应的日志级别,则根据所述日志级别控制哈希表中的日志级别,打印所述交易请求执行过程中产生的日志信息。本发明还公开了一种日志打印装置、设备和一种计算机可读存储介质。本发明能够实现交易层面上的日志级别控制,从而满足不同交易的日志打印需求。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及日志打印方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
目前在金融领域,在使用Java虚拟机运行各类金融交易(如转账、查询、开户)时,需要用到日志打印技术来及时了解系统运行状态。在现有的Java应用程序中,一般使用log4j或logback等基于Java的日志框架来打印日志,这一过程需要预先在Java虚拟机系统配置文件里设置好日志级别,系统运行时根据设置的日志级别打印对应的日志。
上述方式的缺陷在于:无法实现交易层面上的日志级别控制,即现有的日志级别配置,都是基于Java包路径或logger(日志记录器)名配置,一旦日志级别修改,将会影响整个Java虚拟机的所有交易,而不同交易在不同的时期所需要的日志级别可能存在差异,比如交易A已经稳定运行很长时间,为节约系统资源,只需要将该交易的日志级别设置为级别较高的WARN,而交易B,因为刚上线,需要观察一段时间,因此需要将其日志级别设置为级别较低的INFO或DEBUG,或者,交易X,因为出现异常,需要将其日志级别调低为DEBUG以便分析原因等。这种情况下,现有的Java虚拟机层面上的日志级别配置已无法满足不同交易的日志打印需求。
发明内容
本发明的主要目的在于提出一种日志打印方法、装置、设备及计算机可读存储介质,旨在实现交易层面上的日志级别控制,从而满足不同交易的日志打印需求。
为实现上述目的,本发明提供一种日志打印方法,所述日志打印方法包括如下步骤:
当检测到交易请求时,获取所述交易请求中携带的交易标识;
根据所述交易标识查找预设的日志级别控制哈希表,判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别;
若所述日志级别控制哈希表中存在与所述交易标识对应的日志级别,则根据所述日志级别控制哈希表中的日志级别,打印所述交易请求执行过程中产生的日志信息。
优选地,所述判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别的步骤包括:
判断所述日志级别控制哈希表中是否存在所述交易标识;
若所述日志级别控制哈希表中存在所述交易标识,则判断所述日志级别控制哈希表中与所述交易标识对应的日志级别是否为空;
若所述日志级别控制哈希表中与所述交易标识对应的日志级别不为空,则判定所述日志级别控制哈希表中存在与所述交易标识对应的日志级别。
优选地,所述根据所述日志级别控制哈希表中的日志级别,打印所述交易请求执行过程中产生的日志信息的步骤包括:
创建一个与所述交易请求对应的线程级上下文存储器,将所述日志级别控制哈希表中的日志级别保存至所述线程级上下文存储器中;
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别,并获取所述线程级上下文存储器中保存的日志级别;
将所述被创建的日志的日志级别与所述线程级上下文存储器中保存的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述线程级上下文存储器中保存的日志级别,则打印所述被创建的日志。
优选地,所述日志打印方法还包括:
当检测到所述交易请求执行完毕时,清除与所述交易请求对应的线程级上下文存储器中的数据。
优选地,所述当检测到交易请求时,获取所述交易请求中携带的交易标识的步骤之前,还包括:
在系统启动时,读取预设的日志级别配置表,所述日志级别配置表中记录有基于不同的交易标识设置的日志级别配置信息;
根据所述日志级别配置信息生成一个日志级别控制哈希表,将所述日志级别控制哈希表进行保存。
优选地,所述日志打印方法还包括:
通过预设的轮询线程,检测所述日志级别配置表中的日志级别配置信息是否发生变化;
若所述日志级别配置信息发生变化,则根据变化后的日志级别配置信息刷新所述日志级别控制哈希表。
优选地,所述判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别的步骤之后,还包括:
若所述日志级别控制哈希表中不存在与所述交易标识对应的日志级别,则获取预设的系统配置文件中的日志级别;
根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息。
优选地,所述根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息的步骤包括:
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别;
将所述被创建的日志的日志级别与所述系统配置文件中的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述系统配置文件中的日志级别,则打印所述被创建的日志。
此外,为实现上述目的,本发明还提供一种日志打印装置,所述日志打印装置包括:
优选地,第一获取模块,用于当检测到交易请求时,获取所述交易请求中携带的交易标识;
判断模块,用于根据所述交易标识查找预设的日志级别控制哈希表,判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别;
第一打印模块,用于若所述日志级别控制哈希表中存在与所述交易标识对应的日志级别,则根据所述日志级别控制哈希表中的日志级别,打印所述交易请求执行过程中产生的日志信息。
优选地,所述判断模块还用于:
判断所述日志级别控制哈希表中是否存在所述交易标识;
若所述日志级别控制哈希表中存在所述交易标识,则判断所述日志级别控制哈希表中与所述交易标识对应的日志级别是否为空;
若所述日志级别控制哈希表中与所述交易标识对应的日志级别不为空,则判定所述日志级别控制哈希表中存在与所述交易标识对应的日志级别。
优选地,所述第一打印模块还用于:
创建一个与所述交易请求对应的线程级上下文存储器,将所述日志级别控制哈希表中的日志级别保存至所述线程级上下文存储器中;
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别,并获取所述线程级上下文存储器中保存的日志级别;
将所述被创建的日志的日志级别与所述线程级上下文存储器中保存的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述线程级上下文存储器中保存的日志级别,则打印所述被创建的日志。
优选地,所述日志打印装置还包括:
清除模块,用于当检测到所述交易请求执行完毕时,清除与所述交易请求对应的线程级上下文存储器中的数据。
优选地,所述日志打印装置还包括:
读取模块,用于在系统启动时,读取预设的日志级别配置表,所述日志级别配置表中记录有基于不同的交易标识设置的日志级别配置信息;
生成模块,用于根据所述日志级别配置信息生成一个日志级别控制哈希表,将所述日志级别控制哈希表进行保存。
优选地,所述日志打印装置还包括:
检测模块,用于通过预设的轮询线程,检测所述日志级别配置表中的日志级别配置信息是否发生变化;
刷新模块,用于若所述日志级别配置信息发生变化,则根据变化后的日志级别配置信息刷新所述日志级别控制哈希表。
优选地,所述日志打印装置还包括:
第二获取模块,用于若所述日志级别控制哈希表中不存在与所述交易标识对应的日志级别,则获取预设的系统配置文件中的日志级别;
第二打印模块,用于根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息。
优选地,所述第二打印模块还用于:
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别;
将所述被创建的日志的日志级别与所述系统配置文件中的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述系统配置文件中的日志级别,则打印所述被创建的日志。
此外,为实现上述目的,本发明还提供一种日志打印设备,所述日志打印设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的日志打印程序,所述日志打印程序被所述处理器执行时实现如上所述的日志打印方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有日志打印程序,所述日志打印程序被处理器执行时实现如上所述的日志打印方法的步骤。
本发明当检测到交易请求时,获取所述交易请求中携带的交易标识;根据所述交易标识查找预设的日志级别控制哈希表,判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别;若所述日志级别控制哈希表中存在与所述交易标识对应的日志级别,则根据所述日志级别控制哈希表中的日志级别,打印所述交易请求执行过程中产生的日志信息。本发明通过查找预设的日志级别控制哈希表,能够得到与当前交易对应的日志级别,进而根据该日志级别打印对应的日志,从而实现了交易层面上的日志级别控制,满足了不同交易的日志打印需求。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明日志打印方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例日志打印设备可以是PC机、服务器等设备。
如图1所示,该日志打印设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及日志打印程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的日志打印程序,并执行下述日志打印方法实施例中的操作。
基于上述硬件结构,提出本发明日志打印方法实施例。
参照图2,图2为本发明日志打印方法第一实施例的流程示意图,所述方法包括:
步骤S10,当检测到交易请求时,获取所述交易请求中携带的交易标识;
本实施例日志打印方法应用于日志打印设备,该日志打印设备上运行有JVM(JavaVirtual Machine,Java虚拟机)。目前在金融领域,在使用Java虚拟机运行各类金融交易(如转账、查询、开户)时,需要用到日志打印技术输出日志,以便于运维人员及时了解系统运行状态。
在基于Java的日志框架中,日志级别用于表示某条日志信息的重要程度,而日志信息是根据预先设定的日志级别来进行打印的,即如果当前被创建的日志级别大于或等于预设的日志级别,则打印当前被创建的日志,否则不打印,如此能够保证只有级别较高的日志才能够被打印,从而节约系统资源。
在本实施例中,为实现交易层面上的日志级别控制,Java虚拟机中预设有一日志级别控制哈希表,当检测到交易请求时,首先获取该交易请求中携带的交易标识,其中,交易标识可以是交易名称、交易代码等,不同的交易标识对应于不同的交易。
步骤S20,根据所述交易标识查找预设的日志级别控制哈希表,判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别;
然后,根据获取到的交易标识查找预设的日志级别控制哈希表,判断该日志级别控制哈希表中是否存在与所述交易标识对应的日志级别,其中,日志级别控制哈希表中保存有不同的交易标识与日志级别之间的对应关系。
具体地,所述判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别的步骤可以包括:判断所述日志级别控制哈希表中是否存在所述交易标识;若所述日志级别控制哈希表中存在所述交易标识,则判断所述日志级别控制哈希表中与所述交易标识对应的日志级别是否为空;若所述日志级别控制哈希表中与所述交易标识对应的日志级别不为空,则判定所述日志级别控制哈希表中存在与所述交易标识对应的日志级别。
比如,当交易标识为A时,首先判断日志级别控制哈希表中是否存在交易标识A,若存在,则进一步判断日志级别控制哈希表中与该交易标识A对对应的日志级别是否为空(null),若不为空,则判定日志级别控制哈希表中存在与交易标识A对应的日志级别。
反之,若日志级别控制哈希表中不存在交易请求中携带的交易标识,或者与该交易标识对应的日志级别为空,则判定日志级别控制哈希表中不存在与该交易标识对应的日志级别。
若所述日志级别控制哈希表中存在与所述交易标识对应的日志级别,则执行步骤S30,根据所述日志级别控制哈希表中的日志级别,打印所述交易请求执行过程中产生的日志信息。
当日志级别控制哈希表中存在与获取到的交易标识对应的日志级别时,即根据该日志级别,打印上述交易请求执行过程中产生的日志信息。
具体地,所述根据所述日志级别控制哈希表中的日志级别,打印所述交易请求执行过程中产生的日志信息的步骤可以包括:创建一个与所述交易请求对应的线程级上下文存储器,将所述日志级别控制哈希表中的日志级别保存至所述线程级上下文存储器中;当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别,并获取所述线程级上下文存储器中保存的日志级别;将所述被创建的日志的日志级别与所述线程级上下文存储器中保存的日志级别进行比较;若所述被创建的日志的日志级别大于或等于所述线程级上下文存储器中保存的日志级别,则打印所述被创建的日志。
在本实施例中,为保证日志按照日志级别控制哈希表中的日志级别进行打印,需首先创建一个与当前交易请求对应的线程级上下文存储器,该线程级上下文存储器可以是MDC(Mapped Diagnostic Context,映射调试上下文),MDC是目前各日志框架普遍使用的线程级上下文存储器,是log4j和logback等基于Java的日志框架提供的一种方便在多线程条件下记录日志的功能。当线程级上下文存储器被创建后,即读取日志级别控制哈希表中的日志级别并保存至该线程级上下文存储器中。
需要说明的是,除MDC外,本实施例中的线程级上下文存储器也可以采用其他自定义的线程级上下文存储器,具体实施时可灵活设置;另外,不同的交易对应不同的线程级上下文存储器,由于是线程级的上下文,所以不同交易设置的日志级别互不干扰。
在本实施例中,为实现日志的正常打印,可以定义一个日志过滤器,以对上述交易请求执行过程中的日志创建事件进行实时检测,当在交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别,并获取上述线程级上下文存储器中保存的日志级别,然后,将被创建的日志的日志级别和线程级上下文存储器中保存的日志级别进行比较,若被创建的日志的日志级别大于或等于线程级上下文存储器中保存的日志级别,则打印被创建的日志,否则不打印日志。
以Log4j(java的日志)为例,目前Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG,其中,ERROR指出虽然发生错误事件,但仍然不影响系统的继续运行,WARN表明会出现潜在错误的情形,INFO表明消息在粗粒度级别上突出强调应用程序的运行过程,DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的。具体来说,若当前创建的日志的日志级别为INFO,高于线程级上下文存储器中保存的日志级别DEBUG,则需要打印该INFO级别的日志。
进一步地,所述日志打印方法还包括:当检测到所述交易请求执行完毕时,清除与所述交易请求对应的线程级上下文存储器中的数据。
在本实施例中,考虑到交易请求所使用的线程池,其中的线程是可以重用的,如果之前线程的线程级上下文存储器内容没有清除掉,则再次从线程池中获取到这个线程,会去取之前的数据(脏数据),导致一些不可预期的错误。为此,本实施例当检测到当前交易请求执行完毕后,需清除与该交易请求对应的线程级上下文存储器中的数据,从而不影响后续的交易。
本发明通过查找预设的日志级别控制哈希表,能够得到与当前交易对应的日志级别,进而根据该日志级别打印对应的日志,从而实现了交易层面上的日志级别控制,满足了不同交易的日志打印需求。
进一步地,基于本发明日志打印方法第一实施例,提出本发明日志打印方法第二实施例。
在本实施例中,上述步骤S10之前,还可以包括:在系统启动时,读取预设的日志级别配置表,所述日志级别配置表中记录有基于不同的交易标识设置的日志级别配置信息;根据所述日志级别配置信息生成一个日志级别控制哈希表,将所述日志级别控制哈希表进行保存。
在本实施例中,可以预先设置一个日志级别配置表,该日志级别配置表中记录有基于不同的交易标识设置的日志级别配置信息。具体地,日志级别配置表的结构如下表所示:
比如,交易A,需要将其日志级别设置为WARN,即只有级别大于或等于WARN的日志才被打印,则做配置如下:
transaction_code:transaction-A
log_level:WARN
description:交易A
又如,交易B,继承系统配置文件中默认的日志级别,则做配置如下:
transaction_code:transaction-B
log_level:null
description:交易B
又如,交易C,在该表里没有对应的记录,则仍然继承系统配置文件中默认的日志级别。
在系统启动时,首先读取预设的日志级别配置表,并获取该日志级别配置表中基于不同的交易标识设置的日志级别配置信息,然后根据该日志级别配置信息生成一个日志级别控制哈希表,之后,将该日志级别控制哈希表保存至预设的JVM级的缓存区中,以供后续查询。
进一步地,所述日志打印方法还可以包括:通过预设的轮询线程,检测所述日志级别配置表中的日志级别配置信息是否发生变化;若所述日志级别配置信息发生变化,则根据变化后的日志级别配置信息刷新所述日志级别控制哈希表。
在本实施例中,用户可以随时修改日志级别配置表中的日志级别配置信息,系统可以通过一个预设的轮询线程,定期(比如每隔30秒)检测日志级别配置表中的日志级别配置信息是否发生变化,如是否增加、删除交易,或交易对应的日志级别被修改等;若日志级别配置信息发生变化,则根据变化后的日志级别配置信息刷新预先保存的日志级别控制哈希表。
上述方式不需要修改代码或系统配置文件,不需要重新部署,也不需要重启系统,只需要对日志级别配置表做增、删、改,即可达到修改日志级别的目的,灵活程度非常高。
进一步地,基于本发明日志打印方法第一实施例,提出本发明日志打印方法第三实施例。
在本实施例中,所述判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别的步骤之后,还可以包括:若所述日志级别控制哈希表中不存在与所述交易标识对应的日志级别,则获取预设的系统配置文件中的日志级别;根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息。
在本实施例中,当日志级别控制哈希表中不存在与获取到的交易标识对应的日志级别时,则获取预设的系统配置文件中默认的日志级别,根据该系统配置文件中默认的日志级别,打印交易请求执行过程中产生的日志信息。
具体地,所述根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息的步骤包括:当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别;将所述被创建的日志的日志级别与所述系统配置文件中的日志级别进行比较;若所述被创建的日志的日志级别大于或等于所述系统配置文件中的日志级别,则打印所述被创建的日志。
同样地,可以通过预设的日志过滤器,对上述交易请求执行过程中的日志创建事件进行实时检测,当在交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别,将被创建的日志的日志级别与系统配置文件中的日志级别进行比较,若被创建的日志的日志级别大于或等于系统配置文件中保存的日志级别,则打印被创建的日志,否则不打印日志。
上述当日志级别控制哈希表中不存在与交易标识对应的日志级别时,根据系统配置文件中的日志级别打印交易日志的方式,保证了交易请求执行过程中的日志信息能够被正常打印,满足了交易的日志打印需求。
本发明还提供一种日志打印装置。所述日志打印装置包括:
第一获取模块,用于当检测到交易请求时,获取所述交易请求中携带的交易标识;
判断模块,用于根据所述交易标识查找预设的日志级别控制哈希表,判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别;
第一打印模块,用于若所述日志级别控制哈希表中存在与所述交易标识对应的日志级别,则根据所述日志级别控制哈希表中的日志级别,打印所述交易请求执行过程中产生的日志信息。
进一步地,所述判断模块还用于:
判断所述日志级别控制哈希表中是否存在所述交易标识;
若所述日志级别控制哈希表中存在所述交易标识,则判断所述日志级别控制哈希表中与所述交易标识对应的日志级别是否为空;
若所述日志级别控制哈希表中与所述交易标识对应的日志级别不为空,则判定所述日志级别控制哈希表中存在与所述交易标识对应的日志级别。
进一步地,所述第一打印模块还用于:
创建一个与所述交易请求对应的线程级上下文存储器,将所述日志级别控制哈希表中的日志级别保存至所述线程级上下文存储器中;
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别,并获取所述线程级上下文存储器中保存的日志级别;
将所述被创建的日志的日志级别与所述线程级上下文存储器中保存的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述线程级上下文存储器中保存的日志级别,则打印所述被创建的日志。
进一步地,所述日志打印装置还包括:
清除模块,用于当检测到所述交易请求执行完毕时,清除与所述交易请求对应的线程级上下文存储器中的数据。
进一步地,所述日志打印装置还包括:
读取模块,用于在系统启动时,读取预设的日志级别配置表,所述日志级别配置表中记录有基于不同的交易标识设置的日志级别配置信息;
生成模块,用于根据所述日志级别配置信息生成一个日志级别控制哈希表,将所述日志级别控制哈希表进行保存。
进一步地,所述日志打印装置还包括:
检测模块,用于通过预设的轮询线程,检测所述日志级别配置表中的日志级别配置信息是否发生变化;
刷新模块,用于若所述日志级别配置信息发生变化,则根据变化后的日志级别配置信息刷新所述日志级别控制哈希表。
进一步地,所述日志打印装置还包括:
第二获取模块,用于若所述日志级别控制哈希表中不存在与所述交易标识对应的日志级别,则获取预设的系统配置文件中的日志级别;
第二打印模块,用于根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息。
进一步地,所述第二打印模块还用于:
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别;
将所述被创建的日志的日志级别与所述系统配置文件中的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述系统配置文件中的日志级别,则打印所述被创建的日志。
上述各程序模块所执行的方法可参照本发明日志打印方法各个实施例,此处不再赘述。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有日志打印程序,所述日志打印程序被处理器执行时实现如上所述的日志打印方法的步骤。
其中,在所述处理器上运行的日志打印程序被执行时所实现的方法可参照本发明日志打印方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (16)
1.一种日志打印方法,其特征在于,所述日志打印方法包括如下步骤:
当检测到交易请求时,获取所述交易请求中携带的交易标识;
根据所述交易标识查找预设的日志级别控制哈希表,判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别;
若所述日志级别控制哈希表中存在与所述交易标识对应的日志级别,则创建一个与所述交易请求对应的线程级上下文存储器,将所述日志级别控制哈希表中的日志级别保存至所述线程级上下文存储器中;
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别,并获取所述线程级上下文存储器中保存的日志级别;
将所述被创建的日志的日志级别与所述线程级上下文存储器中保存的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述线程级上下文存储器中保存的日志级别,则打印所述被创建的日志。
2.如权利要求1所述的日志打印方法,其特征在于,所述判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别的步骤包括:
判断所述日志级别控制哈希表中是否存在所述交易标识;
若所述日志级别控制哈希表中存在所述交易标识,则判断所述日志级别控制哈希表中与所述交易标识对应的日志级别是否为空;
若所述日志级别控制哈希表中与所述交易标识对应的日志级别不为空,则判定所述日志级别控制哈希表中存在与所述交易标识对应的日志级别。
3.如权利要求1所述的日志打印方法,其特征在于,所述日志打印方法还包括:
当检测到所述交易请求执行完毕时,清除与所述交易请求对应的线程级上下文存储器中的数据。
4.如权利要求1至3中任一项所述的日志打印方法,其特征在于,所述当检测到交易请求时,获取所述交易请求中携带的交易标识的步骤之前,还包括:
在系统启动时,读取预设的日志级别配置表,所述日志级别配置表中记录有基于不同的交易标识设置的日志级别配置信息;
根据所述日志级别配置信息生成一个日志级别控制哈希表,将所述日志级别控制哈希表进行保存。
5.如权利要求4所述的日志打印方法,其特征在于,所述日志打印方法还包括:
通过预设的轮询线程,检测所述日志级别配置表中的日志级别配置信息是否发生变化;
若所述日志级别配置信息发生变化,则根据变化后的日志级别配置信息刷新所述日志级别控制哈希表。
6.如权利要求1至3中任一项所述的日志打印方法,其特征在于,所述判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别的步骤之后,还包括:
若所述日志级别控制哈希表中不存在与所述交易标识对应的日志级别,则获取预设的系统配置文件中的日志级别;
根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息。
7.如权利要求6所述的日志打印方法,其特征在于,所述根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息的步骤包括:
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别;
将所述被创建的日志的日志级别与所述系统配置文件中的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述系统配置文件中的日志级别,则打印所述被创建的日志。
8.一种日志打印装置,其特征在于,所述日志打印装置包括:
第一获取模块,用于当检测到交易请求时,获取所述交易请求中携带的交易标识;
判断模块,用于根据所述交易标识查找预设的日志级别控制哈希表,判断所述日志级别控制哈希表中是否存在与所述交易标识对应的日志级别;
第一打印模块,用于若所述日志级别控制哈希表中存在与所述交易标识对应的日志级别,则创建一个与所述交易请求对应的线程级上下文存储器,将所述日志级别控制哈希表中的日志级别保存至所述线程级上下文存储器中;
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别,并获取所述线程级上下文存储器中保存的日志级别;
将所述被创建的日志的日志级别与所述线程级上下文存储器中保存的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述线程级上下文存储器中保存的日志级别,则打印所述被创建的日志。
9.如权利要求8所述的日志打印装置,其特征在于,所述判断模块还用于:
判断所述日志级别控制哈希表中是否存在所述交易标识;
若所述日志级别控制哈希表中存在所述交易标识,则判断所述日志级别控制哈希表中与所述交易标识对应的日志级别是否为空;
若所述日志级别控制哈希表中与所述交易标识对应的日志级别不为空,则判定所述日志级别控制哈希表中存在与所述交易标识对应的日志级别。
10.如权利要求8所述的日志打印装置,其特征在于,所述日志打印装置还包括:
清除模块,用于当检测到所述交易请求执行完毕时,清除与所述交易请求对应的线程级上下文存储器中的数据。
11.如权利要求8至10中任一项所述的日志打印装置,其特征在于,所述日志打印装置还包括:
读取模块,用于在系统启动时,读取预设的日志级别配置表,所述日志级别配置表中记录有基于不同的交易标识设置的日志级别配置信息;
生成模块,用于根据所述日志级别配置信息生成一个日志级别控制哈希表,将所述日志级别控制哈希表进行保存。
12.如权利要求9所述的日志打印装置,其特征在于,所述日志打印装置还包括:
检测模块,用于通过预设的轮询线程,检测所述日志级别配置表中的日志级别配置信息是否发生变化;
刷新模块,用于若所述日志级别配置信息发生变化,则根据变化后的日志级别配置信息刷新所述日志级别控制哈希表。
13.如权利要求8至10中任一项所述的日志打印装置,其特征在于,所述日志打印装置还包括:
第二获取模块,用于若所述日志级别控制哈希表中不存在与所述交易标识对应的日志级别,则获取预设的系统配置文件中的日志级别;
第二打印模块,用于根据所述系统配置文件中的日志级别,打印所述交易请求执行过程中产生的日志信息。
14.如权利要求13所述的日志打印装置,其特征在于,所述第二打印模块还用于:
当在所述交易请求执行过程中检测到日志创建事件时,获取被创建的日志的日志级别;
将所述被创建的日志的日志级别与所述系统配置文件中的日志级别进行比较;
若所述被创建的日志的日志级别大于或等于所述系统配置文件中的日志级别,则打印所述被创建的日志。
15.一种日志打印设备,其特征在于,所述日志打印设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的日志打印程序,所述日志打印程序被所述处理器执行时实现如权利要求1至7中任一项所述的日志打印方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有日志打印程序,所述日志打印程序被处理器执行时实现如权利要求1至7中任一项所述的日志打印方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910500378.0A CN110231921B (zh) | 2019-06-06 | 2019-06-06 | 日志打印方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910500378.0A CN110231921B (zh) | 2019-06-06 | 2019-06-06 | 日志打印方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110231921A CN110231921A (zh) | 2019-09-13 |
CN110231921B true CN110231921B (zh) | 2024-03-29 |
Family
ID=67858753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910500378.0A Active CN110231921B (zh) | 2019-06-06 | 2019-06-06 | 日志打印方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110231921B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778350A (zh) * | 2021-01-08 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种日志打印方法和装置 |
CN114116523A (zh) * | 2022-01-28 | 2022-03-01 | 广东睿江云计算股份有限公司 | 一种框架调试方法以及框架调试系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001071637A1 (fr) * | 2000-03-24 | 2001-09-27 | Dai Nippon Printing Co., Ltd. | Appareil de traitement de documents electroniques et procede de traitement |
EP1959340A2 (en) * | 2007-02-16 | 2008-08-20 | Canon Kabushiki Kaisha | Information processing apparatus and control method thereof |
JP2011170412A (ja) * | 2010-02-16 | 2011-09-01 | Ricoh Co Ltd | ネットワークプリントシステム、出力管理装置、出力管理方法、プログラムおよび記録媒体 |
WO2012121118A1 (en) * | 2011-03-07 | 2012-09-13 | Ricoh Company, Ltd. | Generating printable certificates to verify log authenticity |
CN104378415A (zh) * | 2014-10-29 | 2015-02-25 | 中国建设银行股份有限公司 | 一种基于消息的高可用云系统和实现方法 |
CN106296400A (zh) * | 2016-08-10 | 2017-01-04 | 中国农业银行股份有限公司 | 一种日志记录的方法及系统 |
CN106708711A (zh) * | 2015-11-17 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种日志信息输出控制方法及装置 |
CN108804279A (zh) * | 2018-03-30 | 2018-11-13 | 阿里巴巴集团控股有限公司 | 修改日志打印等级的方法及应用设备 |
CN109240917A (zh) * | 2018-08-13 | 2019-01-18 | 山东中创软件工程股份有限公司 | 一种日志管理方法及相关装置 |
CN109471845A (zh) * | 2018-10-25 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 日志管理方法、服务器及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090312094A1 (en) * | 2008-05-30 | 2009-12-17 | Igt | Methods and apparatus for secured transaction logging |
US9552274B2 (en) * | 2014-06-27 | 2017-01-24 | Vmware, Inc. | Enhancements to logging of a computer program |
-
2019
- 2019-06-06 CN CN201910500378.0A patent/CN110231921B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001071637A1 (fr) * | 2000-03-24 | 2001-09-27 | Dai Nippon Printing Co., Ltd. | Appareil de traitement de documents electroniques et procede de traitement |
EP1959340A2 (en) * | 2007-02-16 | 2008-08-20 | Canon Kabushiki Kaisha | Information processing apparatus and control method thereof |
JP2011170412A (ja) * | 2010-02-16 | 2011-09-01 | Ricoh Co Ltd | ネットワークプリントシステム、出力管理装置、出力管理方法、プログラムおよび記録媒体 |
WO2012121118A1 (en) * | 2011-03-07 | 2012-09-13 | Ricoh Company, Ltd. | Generating printable certificates to verify log authenticity |
CN104378415A (zh) * | 2014-10-29 | 2015-02-25 | 中国建设银行股份有限公司 | 一种基于消息的高可用云系统和实现方法 |
CN106708711A (zh) * | 2015-11-17 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种日志信息输出控制方法及装置 |
CN106296400A (zh) * | 2016-08-10 | 2017-01-04 | 中国农业银行股份有限公司 | 一种日志记录的方法及系统 |
CN108804279A (zh) * | 2018-03-30 | 2018-11-13 | 阿里巴巴集团控股有限公司 | 修改日志打印等级的方法及应用设备 |
CN109240917A (zh) * | 2018-08-13 | 2019-01-18 | 山东中创软件工程股份有限公司 | 一种日志管理方法及相关装置 |
CN109471845A (zh) * | 2018-10-25 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 日志管理方法、服务器及计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
The Design and Implementation of a Distributed Transaction Processing System;SM Yuan 等;《Journal of Anhui Polytechnic University》;全文 * |
一种基于Log4J的日志输出组件的设计;史志英;徐义晗;;信息技术与信息化(第01期);全文 * |
基于Linux内核的智能日志生成系统;刘洪武;梁亮;杨国为;宋高俊;;计算机工程(第18期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110231921A (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7636919B2 (en) | User-centric policy creation and enforcement to manage visually notified state changes of disparate applications | |
US8082471B2 (en) | Self healing software | |
CN107451040B (zh) | 故障原因的定位方法、装置及计算机可读存储介质 | |
US8621282B1 (en) | Crash data handling | |
US7805630B2 (en) | Detection and mitigation of disk failures | |
CN113407383B (zh) | 主备系统切换方法、装置、服务器及主备系统 | |
CN110231921B (zh) | 日志打印方法、装置、设备及计算机可读存储介质 | |
US8327324B1 (en) | Message logging system | |
CN111694734A (zh) | 软件接口校验方法、装置及计算机设备 | |
CN109559121B (zh) | 交易路径调用异常分析方法、装置、设备及可读存储介质 | |
CN111966630B (zh) | 文件类型的检测方法、装置、设备和介质 | |
CN114091031A (zh) | 基于白规则的类加载防护方法及装置 | |
CN111752838A (zh) | 问题排查方法、装置、服务器及存储介质 | |
CN113268401B (zh) | 日志信息的输出方法、装置及计算机可读存储介质 | |
CN115794583A (zh) | 一种内核分析方法及装置 | |
CN112558982B (zh) | 代码检测方法、装置及计算机设备 | |
CN116414594A (zh) | 故障树更新方法、装置、计算机设备和存储介质 | |
CN113032100A (zh) | 一种异常处理方法、装置、设备及存储介质 | |
CN110362464B (zh) | 软件分析方法及设备 | |
US20080141262A1 (en) | System, apparatus, and method for managing a service | |
CN111611058A (zh) | 任务执行方法、装置及电子设备 | |
US20210397498A1 (en) | Information processing apparatus, control method, and program | |
CN111783089A (zh) | 一种追溯恶意进程的方法、装置及存储介质 | |
CN111488230A (zh) | 修改日志输出级别的方法、装置、电子设备及存储介质 | |
CN110704483A (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 |