CN113687973B - 一种日志动态化输出的控制方法、设备及介质 - Google Patents

一种日志动态化输出的控制方法、设备及介质 Download PDF

Info

Publication number
CN113687973B
CN113687973B CN202111004801.1A CN202111004801A CN113687973B CN 113687973 B CN113687973 B CN 113687973B CN 202111004801 A CN202111004801 A CN 202111004801A CN 113687973 B CN113687973 B CN 113687973B
Authority
CN
China
Prior art keywords
instance object
matching
log
attribute
output
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
CN202111004801.1A
Other languages
English (en)
Other versions
CN113687973A (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.)
Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Original Assignee
Chaozhou Zhuoshu Big Data Industry Development 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 Chaozhou Zhuoshu Big Data Industry Development Co Ltd filed Critical Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Priority to CN202111004801.1A priority Critical patent/CN113687973B/zh
Publication of CN113687973A publication Critical patent/CN113687973A/zh
Application granted granted Critical
Publication of CN113687973B publication Critical patent/CN113687973B/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/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/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • 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/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

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

Abstract

本申请公开了一种日志动态化输出的控制方法、设备及介质,方法包括:确定程序功能接口,并通过程序功能接口获取实例对象;对实例对象进行反射处理,以得到实例对象的内部结构;将内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定实例对象是否通过程序功能接口输出日志。通过对日志进行动态的输出控制,使得日志输出更加灵活方便,大幅度减少了因特殊条件的日志控制而造成的冗余代码和重复性工作,使得日志完全按照开发者所需要的输出条件进行输出,减少了无用日志的输出,从而降低了服务器资源的浪费,此外,通过反射的方式获取实例对象的内部结构,使得代码更加灵活,极大地提高了应用的可扩展性。

Description

一种日志动态化输出的控制方法、设备及介质
技术领域
本申请涉及互联网技术领域,具体涉及一种日志动态化输出的控制方法、设备及介质。
背景技术
随着全球互联网技术的迅速发展,各类互联网产品或***层出不穷,与此同时各种开发语言也得到了广泛的使用和发展。在互联网产品或***中,日志记录是程序运行里必不可少的一部分,几乎每个互联网产品或***都会有日志体系,每种开发语言也都会有自己的日志框架和模块,日志对于互联网产品或***的作用显得尤为重要。
然而,互联网产品或***由于用户吞吐量大,在某些需要记录大字段等特殊参数的场景中进行日志输出是非常消耗资源的。然而,现有的日志输出方法难以对日志输出进行针对性控制,因此,提出一种动态的日志控制方法则显得极为重要。
发明内容
为了解决上述现有技术中针对日志的输出无法做到针对性动态控制的问题,本申请提出了一种日志动态化输出的控制方法、设备及介质,包括:
一方面,本申请提出了一种日志动态化输出的控制方法,包括:确定程序功能接口,并通过所述程序功能接口获取实例对象;对所述实例对象进行反射处理,以得到所述实例对象的内部结构;将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志。
在一个示例中,确定程序功能接口,并通过所述程序功能接口获取实例对象之前,所述方法还包括:确定需要控制日志输出的匹配对象类名;获取所述匹配对象类名包含的多条属性名,并从所述多条属性名中选取得到,需要控制所述日志输出的匹配属性名;获取所述匹配属性名包含的多条属性值,并从所述多条属性值中选取得到,需要控制所述日志输出的匹配属性值;确定所述匹配属性值对应的约束条件,所述约束条件的类型至少包括:允许日志输出型、禁止日志输出型;将所述匹配对象类名、匹配属性名、匹配属性值以及约束条件添加至类数据源,作为所述类数据源与实例对象的匹配条件。
在一个示例中,将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志,具体包括:通过所述内部结构获取实例对象类名,并判断类数据源内是否存在与所述实例对象类名相同的匹配对象类名;若不存在,则根据预存的代码确定所述实例对象是否输出日志;若存在,则通过所述内部结构获取实例对象属性名,以及所述实例对象属性名下包含的多条实例对象属性值;通过所述类数据源查询与所述实例对象属性值匹配的匹配属性值,以及与所述匹配属性值对应的约束条件;根据所述约束条件以及预存的第一算法,得到计算结果,所述计算结果用于确定所述实例对象是否通过所述程序功能接口输出日志。
在一个示例中,根据所述约束条件以及预存的第一算法,得到计算结果之后,所述方法还包括:确定所述实例对象属性名的数量不少于两个;确定得到多个所述计算结果,并根据预存的第二算法以及多个所述计算结果,控制所述程序功能接口输出或不输出所述实例对象的日志。
在一个示例中,通过所述内部结构获取实例对象属性名,以及所述实例对象属性名下包含的多条实例对象属性值之前,所述方法包括:确定所述内部结构存在私有属性访问权限;通过预存的运行算法,获取所述私有属性访问权限。
在一个示例中,通过所述内部结构获取实例对象属性名,以及所述实例对象属性名下包含的多条实例对象属性值,具体包括:获取所述内部结构对应的属性提取算法;运行所述属性提取算法,以获取实例对象属性名以及所述实例对象属性名下包含的多条实例对象属性值。
在一个示例中,对所述实例对象进行反射处理,以得到所述实例对象的内部结构,具体包括:在所述程序功能接口上添加JAVA反射算法,所述JAVA反射算法用于对所述实例对象进行实时反射处理;通过所述JAVA反射算法,获取所述实例对象的字节码文件,并将所述字节码文件写入内存中预先创建的类名文件中;得到所述实例对象的内部结构。
在一个示例中,所述方法还包括:确定所述程序功能接口处存在输出日志;根据所述日志的级别,将所述日志存入对应的日志文件中。
另一方面,本申请提出了一种日志动态化输出的控制设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如下指令:确定程序功能接口,并通过所述程序功能接口获取实例对象;对所述实例对象进行反射处理,以得到所述实例对象的内部结构;将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志。
另一方面,本申请提出了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:确定程序功能接口,并通过所述程序功能接口获取实例对象;对所述实例对象进行反射处理,以得到所述实例对象的内部结构;将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志。
通过本申请提出一种日志动态化输出的控制方法、设备及介质能够带来如下有益效果:通过对日志进行动态的输出控制,使得日志输出更加灵活方便,大幅度减少了因特殊条件的日志控制而造成的冗余代码和重复性工作,使得日志完全按照开发者所需要的输出条件进行输出,减少了无用日志的输出,从而降低了服务器资源的浪费。此外,通过反射的方式获取实例对象的内部结构,使得代码更加灵活,极大地提高了应用的可扩展性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中一种日志动态化输出的控制方法的流程示意图;
图2为本申请实施例中一种日志动态化输出的控制设备的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本说明书一个或多个实施例提供的服务端侧的一种日志动态化输出的控制方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、游戏业务领域、公务业务领域等。该流程可以由相应领域的计算设备(比如,支付业务对应的智能客服服务器或者智能移动终端等)执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
首先需要说明的是,本申请所述的一种日志动态化输出的控制方法存储在相应的***或服务器中,用户可以通过相应终端来登录该***或服务器,该终端类型包括但不限于:手机、平板电脑、个人计算机或其他具有相应处理以及通讯功能的硬件设备。此外,用户可以通过APP或WEB登录等方式来登录设置于终端中的相应***,通过终端内部的处理器进行计算处理,或通过与远程服务器通讯的方式,结合服务器发送的处理结果,来执行相应方案,以实现本申请中对日志的动态化输出控制。
以下结合附图,详细说明本申请各实施例提供的技术方案。
如图1所示,本申请实施例提供的一种日志动态化输出的控制方法,包括:
S101:确定程序功能接口,并通过所述程序功能接口获取实例对象。
具体地,***需要确定实现本方案的程序功能接口,该程序功能接口中能够通过相应的实例对象,此处的实例对象以程序的运行代码或执行代码为例进行解释说明。
程序功能接口能够通过为其赋予的相应策略,封装日志的输出功能,包括日志的级别、日志的格式、日志的参数以及错误信息等,通过程序功能接口接收与日志关联的实例对象,以确定该实例对象对应的日志是否需要进行输出。
此外,***在将确定程序功能接口,并通过程序功能接口获取实例对象之前,还需要为类数据源配置与实例对象的匹配条件。
此处的类数据源与程序功能接口连接,用于提供相应的筛选规则,在***通过程序功能接口接收到实例对象时,即可通过将实例对象与类数据源进行对比,来确定该实例对象是否需要输出日志。
为类数据源配置与实例对象的匹配条件具体包括:首先需要确定控制日志输出的匹配对象类名,用于表示属于该类名的对象都需要进行日志控制输出。
进一步地,***可以获取匹配对象类名包含的多条属性名,每一个对象的类名都包含多条属性名,当其中某一条或某几条属性名需要进行日志控制输出时,***即可以从多条属性名中选取到,需要控制日志输出的匹配属性名。
每一个属性名都包含多条属性值,当其中的某一条或某几条属性值需要进行日志控制输出时,***可以从多条属性值中选取得到,需要控制日志输出的匹配属性值。
当确定好匹配属性值之后,则该匹配属性值一定会进行日志控制输出,此时需要为该匹配属性值配置对应的约束条件,约束条件的类型至少包括:允许日志输出型、禁止日志输出型。例如,当某个实例对象中包含某条匹配属性值,且该匹配属性值对应的约束条件为禁止日志输出型,则不会针对该实例对象进行日志输出。
***将上述匹配对象类名、匹配属性名、匹配属性值以及约束条件添加至类数据源,作为类数据源与实例对象的匹配条件。
S102:对所述实例对象进行反射处理,以得到所述实例对象的内部结构。
具体地,***在程序功能接口上添加JAVA反射算法,此处的JAVA反射算法用于对实例对象进行时时反射处理。在本申请实施例中,该JAVA反射算法基于JAVA反射技术实现。
进一步地,***可以通过JAVA反射算法,获取实例对象的字节码文件,并将字节码文件写入内存预先创建的类名文件中,以得到实例对象的内部结构。
该内部结构即可反映实例对象的类名、属性名以及属性值。
S103:将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志。
具体地,***通过实例对象的内部结构获取实例对象类名,并判断类数据源内是否存在于实例对象类名相同的匹配对象类名。
若不存在,则说明该实例对象无需进行日志输出控制,此时即可根据预存的代码确定该实例对象是否输出日志,例如,通过判断该实例对象的等级,来确定其是否需要输出日志。
若存在,则说明该实例对象需要进行日志输出控制。通过内部结构获取实例对象属性名,以及实例对象属性名下包含的多条实例对象属性值。之后,通过类数据源查询与实例对象属性值匹配的匹配属性值,以及与匹配属性值对应的约束条件。
需要说明的是,实例对象属性值可能对应有多条匹配属性值,进而对应有多条约束条件,由于约束条件不同,该实例对象可能同时存在允许日志输出和禁止日志输出的情况存在,为解决此类问题,则需要引入相应算法。
***预存有用处理多种约束条件的相应算法(在此称作第一算法),该第一算法是为解决上述问题引入的,其可以根据相应的优先级规则,或多条约束条件同时存在时对某几条进行忽略的方式,来确定该实例对象是否需要输出日志。具体地,***根据约束条件以及预存的第一算法,得到计算结果,该计算结果用于确定实例对象是否通过程序功能接口输出日志。
此外,上述情况仅针对实例对象属性值属于同一个实例对象属性名的情况。而当实例对象属性名数量不少于两个时,则与实例对象属性名匹配的匹配属性名也将不少于两个。
此时每条实例属性名最终都会得到一条计算结果,***确定得到多个计算结果,此时多个计算结果之间可能同时存在允许日志输出与禁止日志输出的情况,为解决此问题,本申请又引入了处理多种计算结果的相应算法(在此称作第二算法),该第二算法的基本逻辑可以与上述第一算法相同。具体地,根据预存的第二算法以及多个计算结果,控制程序功能接口输出或不输出实例对象的日志。
在一个实施例中,***通过内部结构获取实例对象属性名,以及实例对象属性名下包含的多条实例对象属性值之前,还可以确定内部结构存在私有属性访问权限,此时***即可以通过预存的运行算法,获取私有属性访问权限,进而通过内部结构获取实例对象属性名以及实例对象属性值。
在一个实施例中,***通过内部结构获取实例对象属性名,以及实例对象属性名下包含的多条实例对象属性值,具体包括:***获取内部结构对应的属性提取算法,并根据该属性提取算法,获取实例对象属性名以及实例对象属性名下包含的多条实例对象属性值。
在一个实施例中,***还可以确定程序功能接口处存在输出日志,进而根据日志的级别,将日志存入对应的日志文件中,以实现对日志进行分类管理、此处的日志级别至少包括:DEBUG、INFO、WARN、ERROR、FATAL等。
在一个实施例中,如图2所示,本申请实施例还提供了一种日志动态化输出的控制设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如下指令:
确定程序功能接口,并通过所述程序功能接口获取实例对象;
对所述实例对象进行反射处理,以得到所述实例对象的内部结构;
将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志。
在一个实施例中,本申请还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
确定程序功能接口,并通过所述程序功能接口获取实例对象;
对所述实例对象进行反射处理,以得到所述实例对象的内部结构;
将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志。
通过对日志进行动态的输出控制,使得日志输出更加灵活方便,大幅度减少了因特殊条件的日志控制而造成的冗余代码和重复性工作,使得日志完全按照开发者所需要的输出条件进行输出,减少了无用日志的输出,从而降低了服务器资源的浪费,此外,通过反射的方式获取实例对象的内部结构,使得代码更加灵活,极大地提高了应用的可扩展性。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (7)

1.一种日志动态化输出的控制方法,其特征在于,包括:
确定程序功能接口,并通过所述程序功能接口获取实例对象;
对所述实例对象进行反射处理,以得到所述实例对象的内部结构;
将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志;
确定程序功能接口,并通过所述程序功能接口获取实例对象之前,所述方法还包括:
确定需要控制日志输出的匹配对象类名;
获取所述匹配对象类名包含的多条属性名,并从所述多条属性名中选取得到,需要控制所述日志输出的匹配属性名;
获取所述匹配属性名包含的多条属性值,并从所述多条属性值中选取得到,需要控制所述日志输出的匹配属性值;
确定所述匹配属性值对应的约束条件,所述约束条件的类型至少包括:允许日志输出型、禁止日志输出型;
将所述匹配对象类名、匹配属性名、匹配属性值以及约束条件添加至类数据源,作为所述类数据源与实例对象的匹配条件;
将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志,具体包括:
通过所述内部结构获取实例对象类名,并判断类数据源内是否存在与所述实例对象类名相同的匹配对象类名;
若不存在,则根据预存的代码确定所述实例对象是否输出日志;
若存在,则通过所述内部结构获取实例对象属性名,以及所述实例对象属性名下包含的多条实例对象属性值;通过所述类数据源查询与所述实例对象属性值匹配的匹配属性值,以及与所述匹配属性值对应的约束条件;根据所述约束条件以及预存的第一算法,得到计算结果,所述计算结果用于确定所述实例对象是否通过所述程序功能接口输出日志;
根据所述约束条件以及预存的第一算法,得到计算结果之后,所述方法还包括:
确定所述实例对象属性名的数量不少于两个;
确定得到多个所述计算结果,并根据预存的第二算法以及多个所述计算结果,控制所述程序功能接口输出或不输出所述实例对象的日志。
2.根据权利要求1所述的一种日志动态化输出的控制方法,其特征在于,通过所述内部结构获取实例对象属性名,以及所述实例对象属性名下包含的多条实例对象属性值之前,所述方法包括:
确定所述内部结构存在私有属性访问权限;
通过预存的运行算法,获取所述私有属性访问权限。
3.根据权利要求1所述的一种日志动态化输出的控制方法,其特征在于,通过所述内部结构获取实例对象属性名,以及所述实例对象属性名下包含的多条实例对象属性值,具体包括:
获取所述内部结构对应的属性提取算法;
运行所述属性提取算法,以获取实例对象属性名以及所述实例对象属性名下包含的多条实例对象属性值。
4.根据权利要求1所述的一种日志动态化输出的控制方法,其特征在于,对所述实例对象进行反射处理,以得到所述实例对象的内部结构,具体包括:
在所述程序功能接口上添加JAVA反射算法,所述JAVA反射算法用于对所述实例对象进行实时反射处理;
通过所述JAVA反射算法,获取所述实例对象的字节码文件,并将所述字节码文件写入内存中预先创建的类名文件中;
得到所述实例对象的内部结构。
5.根据权利要求1所述的一种日志动态化输出的控制方法,其特征在于,所述方法还包括:
确定所述程序功能接口处存在输出日志;
根据所述日志的级别,将所述日志存入对应的日志文件中。
6.一种日志动态化输出的控制设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如下指令:
确定程序功能接口,并通过所述程序功能接口获取实例对象;
对所述实例对象进行反射处理,以得到所述实例对象的内部结构;
将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志;
确定程序功能接口,并通过所述程序功能接口获取实例对象之前,还包括:
确定需要控制日志输出的匹配对象类名;
获取所述匹配对象类名包含的多条属性名,并从所述多条属性名中选取得到,需要控制所述日志输出的匹配属性名;
获取所述匹配属性名包含的多条属性值,并从所述多条属性值中选取得到,需要控制所述日志输出的匹配属性值;
确定所述匹配属性值对应的约束条件,所述约束条件的类型至少包括:允许日志输出型、禁止日志输出型;
将所述匹配对象类名、匹配属性名、匹配属性值以及约束条件添加至类数据源,作为所述类数据源与实例对象的匹配条件;
将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志,具体包括:
通过所述内部结构获取实例对象类名,并判断类数据源内是否存在与所述实例对象类名相同的匹配对象类名;
若不存在,则根据预存的代码确定所述实例对象是否输出日志;
若存在,则通过所述内部结构获取实例对象属性名,以及所述实例对象属性名下包含的多条实例对象属性值;通过所述类数据源查询与所述实例对象属性值匹配的匹配属性值,以及与所述匹配属性值对应的约束条件;根据所述约束条件以及预存的第一算法,得到计算结果,所述计算结果用于确定所述实例对象是否通过所述程序功能接口输出日志;
根据所述约束条件以及预存的第一算法,得到计算结果之后,还包括:
确定所述实例对象属性名的数量不少于两个;
确定得到多个所述计算结果,并根据预存的第二算法以及多个所述计算结果,控制所述程序功能接口输出或不输出所述实例对象的日志。
7.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
确定程序功能接口,并通过所述程序功能接口获取实例对象;
对所述实例对象进行反射处理,以得到所述实例对象的内部结构;
将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志;
确定程序功能接口,并通过所述程序功能接口获取实例对象之前,还包括:
确定需要控制日志输出的匹配对象类名;
获取所述匹配对象类名包含的多条属性名,并从所述多条属性名中选取得到,需要控制所述日志输出的匹配属性名;
获取所述匹配属性名包含的多条属性值,并从所述多条属性值中选取得到,需要控制所述日志输出的匹配属性值;
确定所述匹配属性值对应的约束条件,所述约束条件的类型至少包括:允许日志输出型、禁止日志输出型;
将所述匹配对象类名、匹配属性名、匹配属性值以及约束条件添加至类数据源,作为所述类数据源与实例对象的匹配条件;
将所述内部结构与类数据源内对应的匹配条件进行匹配,并根据匹配结果确定所述实例对象是否通过所述程序功能接口输出日志,具体包括:
通过所述内部结构获取实例对象类名,并判断类数据源内是否存在与所述实例对象类名相同的匹配对象类名;
若不存在,则根据预存的代码确定所述实例对象是否输出日志;
若存在,则通过所述内部结构获取实例对象属性名,以及所述实例对象属性名下包含的多条实例对象属性值;通过所述类数据源查询与所述实例对象属性值匹配的匹配属性值,以及与所述匹配属性值对应的约束条件;根据所述约束条件以及预存的第一算法,得到计算结果,所述计算结果用于确定所述实例对象是否通过所述程序功能接口输出日志;
根据所述约束条件以及预存的第一算法,得到计算结果之后,还包括:
确定所述实例对象属性名的数量不少于两个;
确定得到多个所述计算结果,并根据预存的第二算法以及多个所述计算结果,控制所述程序功能接口输出或不输出所述实例对象的日志。
CN202111004801.1A 2021-08-30 2021-08-30 一种日志动态化输出的控制方法、设备及介质 Active CN113687973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111004801.1A CN113687973B (zh) 2021-08-30 2021-08-30 一种日志动态化输出的控制方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111004801.1A CN113687973B (zh) 2021-08-30 2021-08-30 一种日志动态化输出的控制方法、设备及介质

Publications (2)

Publication Number Publication Date
CN113687973A CN113687973A (zh) 2021-11-23
CN113687973B true CN113687973B (zh) 2024-06-25

Family

ID=78584037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111004801.1A Active CN113687973B (zh) 2021-08-30 2021-08-30 一种日志动态化输出的控制方法、设备及介质

Country Status (1)

Country Link
CN (1) CN113687973B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800455B1 (en) * 2012-02-08 2017-10-24 Amazon Technologies, Inc. Log monitoring system
US11556396B2 (en) * 2015-05-08 2023-01-17 Seth Lytle Structure linked native query database management system and methods
CN105488412A (zh) * 2015-06-19 2016-04-13 哈尔滨安天科技股份有限公司 基于android终端日志的恶意代码检测方法及***
US10474381B2 (en) * 2017-03-29 2019-11-12 The Travelers Indemnity Company Multi-server system resource manager
CN111488439B (zh) * 2020-03-18 2023-04-18 杭州迪普科技股份有限公司 保存和分析日志数据的***和方法
CN111881012A (zh) * 2020-08-10 2020-11-03 深圳大势智能科技有限公司 一种日志记录方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Performance of Polar Code MIMO Systems with Matched-Filter Detector and Interference Cancellation;Yuto Hama 等;IEEE;20200227;1-6 *
基于混合人工免疫算法的流程挖掘事件日志融合方法;徐杨;袁峰;林琪;汤德佑;李东;;软件学报;20170324(02);176-196 *

Also Published As

Publication number Publication date
CN113687973A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
CN106897205B (zh) 一种测试数据生成方法及装置
CN106990960B (zh) 代码部署方法及装置
CN113079200A (zh) 一种数据处理的方法、装置及***
CN110704037A (zh) 一种规则引擎实现方法及装置
CN115129716A (zh) 一种针对工业大数据的数据管理方法、设备及存储介质
CN111400681A (zh) 数据权限处理方法、装置及设备
CN108874379B (zh) 页面的处理方法及装置
CN111240987B (zh) 移植程序检测方法、装置、电子设备及计算机可读存储介质
CN113687973B (zh) 一种日志动态化输出的控制方法、设备及介质
CN111131474A (zh) 一种基于区块链管理用户协议的方法、设备及介质
CN111435327B (zh) 一种日志记录的处理方法、装置及***
CN110928941A (zh) 一种数据分片抽取方法及装置
CN111435495A (zh) 业务处理方法、装置与设备
CN113282541B (zh) 文件调用方法、装置和电子设备
CN114791884A (zh) 测试环境的构建方法、装置、存储介质及电子设备
CN107436728B (zh) 规则分析结果存储方法、规则回溯方法及装置
CN110969461B (zh) 公众号信息的处理方法及装置、存储介质、处理器
CN110554867B (zh) 一种应用程序的处理方法和装置
CN106844056B (zh) Hadoop大数据平台多租户作业管理方法及其***
CN112749159A (zh) 表单生成方法、装置、电子设备及存储介质
CN111324368A (zh) 一种数据共享方法及服务器
CN112540835B (zh) 一种混合机器学习模型的运行方法、装置及相关设备
CN110851750B (zh) 一种数据获取方法及装置
CN107479899B (zh) 文件处理方法和装置、存储介质及处理器
CN116755691A (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