CN116107524B - 低代码应用日志处理方法、介质、装置和计算设备 - Google Patents

低代码应用日志处理方法、介质、装置和计算设备 Download PDF

Info

Publication number
CN116107524B
CN116107524B CN202310389318.2A CN202310389318A CN116107524B CN 116107524 B CN116107524 B CN 116107524B CN 202310389318 A CN202310389318 A CN 202310389318A CN 116107524 B CN116107524 B CN 116107524B
Authority
CN
China
Prior art keywords
log
target
programming language
application
information
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
CN202310389318.2A
Other languages
English (en)
Other versions
CN116107524A (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.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Hangzhou Langhe Technology 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 Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN202310389318.2A priority Critical patent/CN116107524B/zh
Publication of CN116107524A publication Critical patent/CN116107524A/zh
Application granted granted Critical
Publication of CN116107524B publication Critical patent/CN116107524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • 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/3442Recording 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 for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/125Page layout or assigning input pages onto output media, e.g. imposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本公开的实施方式提供了一种低代码应用日志处理方法、介质、装置和计算设备,涉及计算机技术领域,该低代码应用日志处理方法包括:确定目标应用的目标业务场景,响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应;响应于针对声明信息配置项的第二操作,确定声明信息,声明信息用于匹配目标日志的日志内容;输出日志内容。本公开能够方便快捷地实现低代码应用的日志打印,提升日志打印的效率。

Description

低代码应用日志处理方法、介质、装置和计算设备
技术领域
本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及一种低代码应用日志处理方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
低代码(Low Code)是一种可视化的应用开发方法,能够用较少的代码、以较快的速度来交付应用程序,将程序员不想开发的代码做到自动化。低代码是一组数字技术工具平台,基于图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态以及中台服务。通过少量代码或不用代码实现数字化转型中的场景应用创新。
目前,在低代码应用的构建过程中,通常是在低代码应用的业务逻辑代码中,增加文本型编程语言编写的日志声明,从而在运行低代码应用时,打印业务逻辑对应的日志信息,以根据日志信息定位问题等。但通过上述方式来打印低代码应用的日志信息,不够便捷。
发明内容
本公开提供一种低代码应用日志处理方法、介质、装置和计算设备,以解决通过目前方式来打印低代码应用的日志信息,不够便捷的问题。
在本公开实施方式的第一方面中,提供了一种低代码应用日志处理方法,包括:
确定目标应用的目标业务场景;
响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应;
响应于针对声明信息配置项的第二操作,确定声明信息,声明信息用于匹配目标日志的日志内容;
输出日志内容。
第二方面,本公开实施例提供一种低代码应用日志处理装置,包括:
第一确定模块,用于确定目标应用的目标业务场景;
生成模块,用于响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应;
第二确定模块,用于响应于针对声明信息配置项的第二操作,确定声明信息,声明信息用于匹配目标日志的日志内容;
输出模块,用于输出日志内容。
第三方面,本公开实施例提供一种计算设备,包括:处理器,以及与处理器通信连接的存储器;
存储器存储计算机执行指令;
处理器执行存储器存储的计算机执行指令,以实现如本公开第一方面所述的低代码应用日志处理方法。
第四方面,本公开实施例提供一种存储介质,存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现如本公开第一方面所述的低代码应用日志处理方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,计算机程序被执行时实现如本公开第一方面所述的低代码应用日志处理方法。
本公开实施例提供的低代码应用日志处理方法、介质、装置和计算设备,通过确定目标应用的目标业务场景,响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应;响应于针对声明信息配置项的第二操作,确定声明信息,声明信息用于匹配目标日志的日志内容;输出日志内容。由于本公开通过对目标日志组件进行操作,来配置目标应用的目标日志的声明信息,进而输出目标日志的日志内容,即通过可视化编辑日志的方式为目标应用添加日志,而不需要通过底层的文本型编程语言来为目标应用添加日志,因此,能够方便快捷地实现低代码应用的日志打印,提升日志打印的效率,且相较于采用文本型编程语言来实现日志打印功能而言能够大大降低学习门槛。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1为本公开实施例提供的一种应用场景示意图;
图2为本公开一实施例提供的低代码应用日志处理方法的流程图;
图3为本公开一实施例提供的物料区域中的日志组件的示意图;
图4为本公开一实施例提供的第一界面的示意图;
图5为本公开一实施例提供的日志的声明信息的示意图;
图6为本公开另一实施例提供的低代码应用日志处理方法的流程图;
图7为本公开一实施例提供的全局逻辑的示意图;
图8为本公开一实施例提供的低代码应用日志处理装置的结构示意图;
图9为本公开一实施例提供的低代码应用日志处理系统的示意图;
图10为本公开一实施例提供的存储介质示意图;
图11为本公开一实施例提供的计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据,本公开实施方式/实施例可以互相组合。
根据本公开的实施方式,提出了一种低代码应用日志处理方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语:
低代码,相比于零代码,低代码是一种定制性更高的应用开发方法;除了基本的可视化数据定义和搭建页面等,根据需求可以进行可视化或文本化的逻辑编写、关联数据字段、事件绑定逻辑以及业务流程编排等;其总体理念是通过基础设施提供尽量多的功能,让开发者对底层实现无感,减少对传统代码的依赖。
低代码应用开发平台所使用的、自定义的开发语言,包括数据定义、数据查询、页面、逻辑以及流程等子领域;目前以图形化(即可视化)编程为主要的开发方式,但不限于该种开发方式,也可以以文本化等其它方式开发;该语言包含了语法、语法树和语义,其中,语法树定义了语言的结构特征,比如可以用TypeScript(一种开源的编程语言)进行表示,但不限于该种表示形式,也可以用JSON(一种轻量级的数据交换格式)/YAML(一种用于表达数据序列化的格式)/Java(一种面向对象编程语言)等其他语言表示;在一种可能的实施方式中,语法树包括了其他描述中所说的模式(Schema)、JSON Schema、语法结构、组件结构以及组件配置等含义;根据语法树可以直接或间接渲染成图形化编程组件,然后低代码应用开发者通过操作可视化编程组件触发事件从而更新语法树中的数据。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本发明人发现,目前,通过在低代码应用的业务逻辑代码中,增加文本型编程语言编写的日志声明,来打印低代码应用的日志信息,不够便捷,且采用文本型编程语言来实现日志打印功能的学习门槛较高。
基于上述问题,本公开提供一种低代码应用日志处理方法、介质、装置和计算设备,通过在低代码应用的构建过程中,根据不同的业务场景,采用可视化编辑日志的方式配置目标日志的声明信息,进而输出目标日志的日志内容,能够方便快捷地实现低代码应用的日志打印。其中,借助于编译器,将应用由第一编程语言编译至第二编程语言,从而获取到应用在第二编程语言下所对应的日志。由于第二编程语言是通用语言,可以直接通过第二编程语言的执行引擎来运行应用,例如,第二编程语言是Java,则可以直接通过Java虚拟机(JVM)运行应用,而不需要单独开发第一编程语言的执行引擎,因此,能够有效减少开发成本。另外,还可以将获得的日志转换至第一编程语言,通过操作第一编程语言的日志,将当前页面直接跳转至相对应的可视化编辑区域,提升低代码应用开发者查看日志的效率。
应用场景总览
首先参考图1对本公开提供的方案的应用场景进行示例说明。图1为本公开实施例提供的一种应用场景示意图,如图1所示,本应用场景中,客户端101为低代码应用开发平台的客户端,云端的服务器102为低代码应用开发平台的服务端;低代码应用的开发者在开发低代码应用的过程中,在客户端101显示的低代码应用开发平台的可视化编辑窗口中,将日志组件通过拖拽操作配置至低代码应用相应的逻辑组件处;通过服务器102编译低代码应用,并运行低代码应用,从而得到低代码应用输出的日志。
需要说明的是,图1仅是本公开实施例提供的一种应用场景的示意图,本公开实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系进行限定。
示例性方法
下面结合图1的应用场景,参考图2来描述根据本公开示例性实施方式的用于低代码应用日志处理方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
首先,通过具体实施例介绍低代码应用日志处理方法。
图2为本公开一实施例提供的低代码应用日志处理方法的流程图。本公开实施例的方法可以应用于计算设备中,该计算设备可以是服务器或服务器集群等。如图2所示,本公开实施例的方法包括:
S201、确定目标应用的目标业务场景。
本公开实施例中,示例性地,目标应用为低代码应用,低代码应用可以通过拖拽方式或表单方式等进行开发,本公开实施例不对此进行限定;目标业务场景比如为订单业务场景,目标应用包含与目标业务场景对应的逻辑组件。该步骤中,可以根据不同的业务需求来确定目标应用的目标业务场景,业务需求比如为需要确定预设定时任务执行失败的原因、获取业务并发情况下的相关信息以及获取业务的相关数据等,本公开实施例不对目标业务场景的确定方式进行限定。
S202、响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应。
可以理解,可以直接通过可视化方式配置日志组件,而不需要关心日志组件的底层代码实现。
可选的,第一操作包括拖拽操作、双击操作、长按操作、单击操作以及粘贴操作中的至少一种。
示例性地,图3为本公开一实施例提供的物料区域中的日志组件的示意图,如图3所示,在集成开发环境(Integrated Development Environment,IDE)的物料区域中显示有不同的组件,其中包括日志组件301,物料区域用于提供不同业务场景下所需要使用的组件。针对目标应用的目标业务场景,可以通过拖拽操作将日志组件301拖拽至IDE的可视化编辑区域中,或者,可以通过双击日志组件301,将日志组件301配置至IDE的可视化编辑区域中,或者,可以通过长按日志组件301,将日志组件301配置至IDE的可视化编辑区域中,或者,可以通过单击日志组件301,将日志组件301配置至IDE的可视化编辑区域中,或者,可以通过复制日志组件301,将日志组件301粘贴至IDE的可视化编辑区域中,以便于对日志组件301的声明信息配置项进行配置。
该步骤中,在确定了目标应用的目标业务场景后,可以针对目标业务场景,在目标应用包含的与目标业务场景对应的逻辑组件处,配置与目标业务场景对应的目标日志组件,相应地,执行本方法实施例的电子设备响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项。
示例性地,图4为本公开一实施例提供的第一界面的示意图,如图4所示,在第一界面401中包含有声明信息配置项,声明信息配置项比如为日志级别配置项4011、参数信息配置项4012以及用于拼接各参数的内置函数4013等。可以通过控件4014来添加参数str1至str4,其中,str1至str4分别表示不同的字符串。可以通过控件4015来删除参数str1至str4中的任一个参数,可以通过控件4016来输入str1或str3对应的参数信息,可以通过控件4017进行筛选操作。
S203、响应于针对声明信息配置项的第二操作,确定声明信息,声明信息用于匹配目标日志的日志内容。
该步骤中,在生成第一界面后,可以通过第一界面包含的声明信息配置项对目标日志的声明信息进行配置,相应地,执行本方法实施例的电子设备响应于针对声明信息配置项的第二操作,确定声明信息。
可选的,第二操作包括输入操作、筛选操作和拖拽操作中的至少一种。
示例性地,基于图4,图5为本公开一实施例提供的日志的声明信息的示意图,如图5所示,可以对第一界面包含的声明信息配置项进行筛选或输入操作,来确定日志声明信息。其中,由于日志组件包含两部分语义,一部分为日志级别,一部分为日志内容,日志级别比如可以包括如下四种:错误(ERROR)、警告(WARNING)、信息(INFO)和调试(DEBUG),便于搜索日志时,可根据日志级别进行快速过滤,因此,图5示出了通过筛选操作确定的日志级别为INFO、内置函数为连接函数(Concat)以及通过输入操作确定的日志的参数信息。其中,连接函数用于对各参数信息进行拼接,即对日志内容进行拼接;每个参数信息包括参数名和参数值,参数名比如为“订单类型为:”,参数值比如为“OrderType.PURCHASE”,该参数值用于表示“订单类型为购买”,可以理解,该参数值中的订单类型(即OrderType)为枚举,值会固化;参数名比如为“订单内容为:”,参数值比如为“order”,该参数值用于表示“订单内容”,可以理解,该参数值为变量,内容可替换。
S204、输出日志内容。
该步骤中,在确定了目标日志的声明信息,即确定了用于匹配目标日志的日志内容的声明信息,因此,可以通过运行目标应用来输出目标日志的日志内容。对于具体如何输出日志内容,可参考后续实施例,此处不再赘述。
本公开实施例提供的低代码应用日志处理方法,通过确定目标应用的目标业务场景,响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应;响应于针对声明信息配置项的第二操作,确定声明信息,声明信息用于匹配目标日志的日志内容;输出日志内容。由于本公开实施例通过对目标日志组件进行操作,来配置目标应用的目标日志的声明信息,进而输出目标日志的日志内容,即通过可视化编辑日志的方式为目标应用添加日志,而不需要通过底层的文本型编程语言来为目标应用添加日志,因此,能够方便快捷地实现低代码应用的日志打印,提升日志打印的效率,且相较于采用文本型编程语言来实现日志打印功能而言能够大大降低学习门槛。
图6为本公开另一实施例提供的低代码应用日志处理方法的流程图。在上述实施例的基础上,本公开实施例对低代码应用日志处理方法进行进一步说明。如图6所示,本公开实施例的方法可以包括:
S601、确定目标应用的目标业务场景。
该步骤的具体描述可以参见图2所示实施例中S201的相关描述,此处不再赘述。
S602、响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应。
该步骤的具体描述可以参见图2所示实施例中S202的相关描述,此处不再赘述。
声明信息配置项包括参数信息配置项,本公开实施例中,图2中S203步骤可以进一步包括如下的S603步骤:
S603、响应于针对声明信息配置项中参数信息配置项的第二操作,确定声明信息。
其中,参数信息包括参数名和参数值,参数名可编辑,参数值为目标业务逻辑中的变量,参数名和参数值之间采用第一预设拼接函数进行拼接。
示例性地,第一预设拼接函数比如为Concat函数,用于拼接数字、字符串、常量、变量以及参数等可视化编程元素,本公开实施例不对第一预设拼接函数进行具体限定。参考图5,可以通过输入操作对参数信息配置项进行配置,从而确定日志的参数信息。其中,可以通过连接函数连接参数名和参数值。
进一步地,可选的,参数信息包括多个,响应于针对参数信息配置项的第二操作,确定声明信息,可以包括:响应于针对参数信息配置项的第二操作,采用第二预设拼接函数对各参数信息进行拼接,确定声明信息。
示例性地,第二预设拼接函数比如为Concat函数,本公开实施例不对第二预设拼接函数进行具体限定。参考图5,可以通过连接函数拼接各参数信息,从而确定目标日志的声明信息。具体的,通过连接函数对图5中的两个参数信息进行拼接,可以得到如下拼接后的声明信息:“订单类型为:”+“${OrderType.PURCHASE}”+“订单内容为:”+“${order}”,其中的“+”表示拼接。
声明信息配置项还包括日志级别配置项,本公开实施例中,图2中S203步骤可以进一步包括如下的S604步骤:
S604、响应于针对声明信息配置项中日志级别配置项的第二操作,确定声明信息。
示例性地,参考图5,可以通过筛选操作确定日志的日志级别为信息(INFO)。
可以理解,通过S603和S604步骤,能够实现通过同一个日志组件可以根据不同场业务景配置不同的场景日志。需要说明的是,本公开实施例不对S603和S604执行的先后顺序进行限定。
在一种可能的实施方式中,目标应用是基于第一编程语言获得的,第一编程语言用于以图形化编程方式开发应用,因此,本公开实施例中,图2中S204步骤可以进一步包括如下的S605和S606两个步骤:
S605、通过编译器将目标应用由第一编程语言编译至第二编程语言,在编译过程中,基于预设源码映射算法获取第一编程语言与第二编程语言之间的映射关系。
其中,第二编程语言用于以文本方式开发应用;映射关系包括目标应用在第一编程语言下的逻辑节点路径与目标应用在第二编程语言下的源码位置信息之间的映射关系,源码位置信息包括开始行号和结束行号,逻辑节点路径用于唯一标识目标应用在第一编程语言下对应的逻辑组件。
该步骤中,在目标应用开发完成后,可以借助于编译器,将目标应用由第一编程语言编译至第二编程语言,以通过第二编程语言运行目标应用,获得目标应用输出的日志,能够有效减少单独开发第一编程语言日志运行时的成本。其中,第一编程语言比如为上述低代码应用开发平台所使用的、自定义的开发语言,第二编程语言比如为Java。示例性地,基于S603步骤的示例,对于目标日志的声明信息“订单类型为:”+“${OrderType.PURCHASE}”+“订单内容为:”+“${order}”,通过编译器可以编译得到在Java下的声明信息源码为:
logger.info("订单类型为:{} 订单内容为:{}", OrderType.PURCHASE, order)
在编译过程中,可以基于预设源码映射算法获取第一编程语言与第二编程语言之间的映射关系,预设源码映射算法比如为sourcemap,sourcemap本质上是一个信息文件,用于存储代码转换前后的对应位置信息。例如,在编译过程中形成的sourcemap结构可以包括目标应用的逻辑组件(包含日志组件)所在的上下文(比如用logicPath表示)、Java下的类的全限定类名(比如用classIdentify表示)以及目标应用在第一编程语言下的逻辑节点路径与目标应用在第二编程语言下的源码位置信息之间的映射关系集合(比如用lineNumberTables表示,为一个列表集合),该列表集合中的一个lineNumberTable的数据结构及语义如下:
lineNumberTable:
第一编程语言:
逻辑节点路径
第二编程语言:
开始行号(比如用lineFrom表示)
开始行开始列(比如用lineFromCharacter表示)
结束行号(比如用lineTo表示)
结束行结束列(比如用lineToCharacter表示)
可以理解,每个在第一编程语言下的逻辑节点路径均有对应的在第二编程语言下的源码位置信息。
S606、通过第二编程语言运行目标应用,并获取目标应用在第二编程语言下所对应的日志,日志包括目标日志。
该步骤中,在通过编译器将目标应用由第一编程语言编译至第二编程语言后,可以通过第二编程语言运行目标应用,并获取目标应用在第二编程语言下所对应的日志。示例性地,假设第二编程语言为Java,Java运行时为JVM,可以通过JVM运行目标应用,并提供相应的服务。在提供服务的过程中,进行Java源码日志输出,输出的日志比如为:
2023-02-13 16:53:20.726 INFO [generator.test.LoggerDemo] [14]订单类型为:PURCHASE 订单内容为:order(orderId=${orderId}, orderTime=Sat Jan 07 17:45:31 CST 2023, userName=${userName})
其中,“2023-02-13 16:53:20.726”表示日志打印时间;INFO表示日志级别为信息;generator.test.LoggerDemo表示类的全限定类名;14表示打印日志源码在源码文件中的行号,即日志行号为14;日志内容包括订单类型和订单内容,其中的订单内容包括订单标识(即orderId)、订购时间(即orderTime)以及订单对应的用户名(即userName)。
可以将上述输出的日志内容抽象为标准化形式,该标准化形式为:
${日志打印时间} ${日志打印级别} ${Java全限定类名} ${Java 文件行号} ${日志内容}
示例性地,可以将Java日志打印输出到某个日志文件后,通过相应的日志采集器对日志进行采集,采集的日志经过相应的处理(比如对日志内容进行切割处理等)后,发送至日志存储器进行存储。其中,日志采集器比如为低代码日志采集器loggie(一种云原生日志系统),日志存储器比如为elastic search(一种开源搜索引擎)。
S607、响应于对目标日志包含的关键词的搜索操作,获取目标日志;将目标日志由第二编程语言转换至第一编程语言,得到转换后的目标日志;显示转换后的目标日志。
示例性地,在获取到目标应用在第二编程语言下输出的目标日志后,低代码应用开发者可以根据一定的搜索条件(比如目标日志包含的关键词)进行日志搜索,相应地,执行本方法实施例的电子设备响应于对目标日志包含的关键词的搜索操作,获取目标日志,将目标日志由第二编程语言转换至第一编程语言,得到转换后的目标日志,并显示转换后的目标日志,从而为低代码应用开发者提供第一编程语言下的日志视图。
进一步地,可选的,将目标日志由第二编程语言转换至第一编程语言,得到转换后的目标日志,可以包括:采用预设文本切割算法对第二编程语言下的目标日志进行切割处理,得到切割处理后的目标日志,切割处理后的目标日志包括日志打印时间、日志级别、在第二编程语言下的目标逻辑对应的全限定类名、日志行号以及日志内容,日志行号用于表示打印日志源码在源码文件中的行号;将全限定类名替换为在第一编程语言下的目标逻辑对应的逻辑名称;根据日志打印时间、日志级别、逻辑名称以及日志内容,得到转换后的目标日志。
示例性地,基于S606步骤中的Java源码日志示例,由于Java源码日志为标准化形式,因此,可以基于预设文本切割算法将日志进行切割,得到如下切割后的各个部分:日志打印时间(如2023-02-13 16:53:20.726)、日志级别(比如INFO)、Java下的全限定类名(如generator.test.LoggerDemo)、日志行号(比如14)以及日志内容,其中预设文本切割算法可参考目前相关技术。
基于S605步骤示例的sourcemap结构,由于全限定类名可唯一映射到logicPath(即第一编程语言下的逻辑标识,日志打印是在某一段逻辑中进行打印的),因此,可以将全限定类名替换为在第一编程语言下的目标逻辑对应的逻辑名称(比如用CustomLogic表示定制逻辑),从而为低代码应用开发者提供第一编程语言下的日志视图。其中,由于可视化编辑时,低代码开发者感知不到日志行号,因此,可以将日志行号去除,得到转化后的第一编程语言下日志示例为:
2023-02-13 17:45:31.604 INFO [CustomLogic] 订单类型为:PURCHASE 订单内容为:Order(orderId=orderId, orderTime=Sat Jan 07 17:45:31 CST 2023, userName=userNmae)
其中,CustomLogic为第一编程语言下的逻辑概念,图7为本公开一实施例提供的全局逻辑的示意图,如图7所示,在CustomLogic(即“定制逻辑”)下配置有用于输出订单信息的日志组件对应的第一界面701(对应“定制逻辑”下的选项“订单”),第一界面701是通过将物料区域中的日志组件“输出日志”通过第一操作配置至IDE的可视化编辑区域702中获得的。全局逻辑还包括其他的逻辑名称。
S608、响应于对转换后的目标日志的第三操作,根据映射关系,将当前页面跳转至第一界面。
其中,第三操作包括双击操作、长按操作以及单击操作中的至少一种。
示例性地,经过对目标日志的转换,低代码应用开发者可以查看到以第一编程语言概念为上下文的目标日志,但在定位某个业务场景下的代码实现逻辑问题时,仍然难以直接根据文本型的第一编程语言下的目标日志来定位到对应的日志组件,导致定位问题效率不高。因此,在显示上述转换后的目标日志后,低代码应用开发者可以双击上述转换后的目标日志,直接跳转到相应的日志组件,或者,可以长按上述转换后的目标日志,直接跳转到相应的日志组件;或者,可以单击上述转换后的目标日志,直接跳转到相应的日志组件,以方便低代码应用开发者定位某个业务场景下的代码实现逻辑问题。例如,参考S607步骤的示例,低代码应用开发者双击S607步骤中示例的转化后的第一编程语言下日志,则可以直接跳转到图7中的第一界面701。
进一步地,可选的,根据映射关系,将当前页面跳转至第一界面,可以包括:根据全限定类名,获取目标源码位置信息;根据目标源码位置信息和日志行号,采用预设源码映射算法确定目标逻辑节点路径;根据目标逻辑节点路径,将当前页面跳转至第一界面。
示例性地,目标逻辑节点路径是目标日志组件的唯一标识。可以理解,第一编程语言的文本形式以JSON形式的树形结构来承载,每个组件(包括日志组件)均唯一对应到一个JSON路径(Path),而可视化编辑器的呈现也是基于该JSON形式的树形结构,因此,可以根据JSON Path直接定位到任一组件。基于S607步骤的示例,通过预设文本切割算法对日志进行切割,可以得到Java下的全限定类名以及日志行号,因此,响应于对转换后的目标日志的第三操作,可以根据全限定类名,获取目标源码位置信息,根据目标源码位置信息和日志行号,采用预设源码映射算法确定目标逻辑节点路径,进而根据目标逻辑节点路径,将当前页面跳转至第一界面,即跳转到转换后的目标日志对应的目标日志组件。
可选的,对于目标源码位置信息包括多个的情况,根据目标源码位置信息和日志行号,采用预设源码映射算法确定目标逻辑节点路径,可以包括:按照每个目标源码位置信息中的开始行号进行排序,得到排序后依第一序列确定的目标源码位置信息,第一序列为开始行号序列;根据日志行号、每个目标源码位置信息中的开始行号和结束行号,对依第一序列确定的目标源码位置信息进行过滤处理,得到过滤处理后的目标源码位置信息,过滤处理后的目标源码位置信息中的开始行号小于或等于日志行号,且结束行号大于或等于日志行号;根据过滤处理后的目标源码位置信息,确定最大开始行号;按照每个过滤处理后的目标源码位置信息中的结束行号进行排序,得到排序后依第二序列确定的目标源码位置信息,第二序列为结束行号序列;根据依第二序列确定的目标源码位置信息,确定最小结束行号;根据最大开始行号和最小结束行号对应的目标源码位置信息,确定目标逻辑节点路径。
可选的,按照每个目标源码位置信息中的开始行号进行排序,得到排序后依第一序列确定的目标源码位置信息,可以包括:若目标源码位置信息中包含相同的开始行号,则将包含相同开始行号的目标源码位置信息按照结束行号进行排序,得到依第一序列确定的目标源码位置信息。
可选的,按照每个过滤处理后的目标源码位置信息中的结束行号进行排序,得到排序后依第二序列确定的目标源码位置信息,可以包括:若目标源码位置信息中包含相同的结束行号,则将包含相同结束行号的目标源码位置信息按照开始行号进行排序,得到依第二序列确定的目标源码位置信息。
示例性地,预设源码映射算法比如为sourcemap,基于S605步骤的示例,通过全限定类名可以获取到全限定类名下所有lineNumberTables。对LineNumberTables中的每个目标源码位置信息按照lineFrom从小到大的顺序进行排序,若lineFrom相同,则按照lineTo从小到大的顺序进行排序,得到排序后依第一序列确定的目标源码位置信息,第一序列为开始行号序列;对依第一序列确定的目标源码位置信息进行过滤处理,得到过滤处理后的目标源码位置信息,其中的过滤条件为:lineFrom<=日志行号<=lineTo。根据过滤处理后的目标源码位置信息,确定最大开始行号。将每个过滤处理后的目标源码位置信息按照lineTo从小到大的顺序进行排序,若lineTo相同,则按照lineFrom从小到大的顺序进行排序,得到排序后依第二序列确定的目标源码位置信息,第二序列为结束行号序列。根据依第二序列确定的目标源码位置信息,确定最小结束行号,根据最大开始行号和最小结束行号对应的目标源码位置信息,确定目标逻辑节点路径,即通过确定最小范围的目标源码位置信息,来确定对应的目标逻辑节点路径。
可以理解,通过sourcemap映射以及可视化编辑器唯一定位机制,通过点击文本(即日志内容)链接,可以直接跳转到相应的可视化编辑区域日志组件所在的位置,方便低代码应用开发者高效排查问题。
本公开实施例提供的低代码应用日志处理方法,通过确定目标应用的目标业务场景,响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应,响应于针对声明信息配置项中参数信息配置项以及日志级别配置项的第二操作,确定声明信息;由于通过对目标日志组件进行操作,来配置目标应用的目标日志的声明信息,进而输出目标日志的日志内容,而不需要通过底层的文本型编程语言来为目标应用添加日志,因此,能够方便快捷地实现低代码应用的日志打印,提升日志打印的效率,且相较于采用文本型编程语言来实现日志打印功能而言能够大大降低学习门槛;通过编译器将目标应用由第一编程语言编译至第二编程语言,在编译过程中,基于预设源码映射算法获取第一编程语言与第二编程语言之间的映射关系;通过第二编程语言运行目标应用,并获取目标应用在第二编程语言下所对应的日志,日志包括目标日志,能够有效减少单独开发第一编程语言日志运行时的成本。另外,响应于对目标日志包含的关键词的搜索操作,获取目标日志;将目标日志由第二编程语言转换至第一编程语言,得到转换后的目标日志;显示转换后的目标日志;响应于对转换后的目标日志的第三操作,根据映射关系,将当前页面跳转至第一界面,能够提升低代码应用开发者查看日志的效率,进而能够提高问题排查的效率。
在上述实施例的基础上,可选的,在获取到目标应用在第二编程语言下所对应的日志之后,本公开实施例提供的低代码应用日志处理方法还可以包括:响应于对异常堆栈日志包含的关键词的搜索操作,获取在第二编程语言下的异常堆栈日志;将异常堆栈日志由第二编程语言转换至第一编程语言,得到转换后的异常堆栈日志;显示转换后的异常堆栈日志。
可以理解,除了低代码应用开发者主动打印的第一编程语言下的业务日志,应用运行期间还会产生一些异常堆栈日志。可选的,异常堆栈日志包括空指针异常日志、数组越界日志和除数为0日志中的至少一种。例如,在出现除数为0的异常时,打印除数为0的异常堆栈日志,如下为除数为0的Java源码异常堆栈日志:
2023-02-13 17:01:23.662 ERROR [com.aaa.generator.test.LoggerDemo]error is java.lang.ArithmeticException: / by zero
at com.aaa.generator.test.Compute2.computAmount(Compute2.java:10)
at com.aaa.generator.test.Compute1.computAmount(Compute1.java:15)
at com.aaa.generator.test.LoggerDemo.log(LoggerDemo.java:16)
其中,“2023-02-13 17:01:23.662”表示日志打印时间;ERROR表示日志级别;com.aaa.generator.test.LoggerDemo表示全限定类名;“java.lang.ArithmeticException:/ by zero”表示异常种类及信息;剩下的三行信息为异常堆栈信息,其中每一行由“at”、全限定类名(比如com.aaa.generator.test.Compute1)、方法名(比如computAmount)、类名(比如Compute1.java)以及日志行号组成。
可以理解,异常堆栈日志的日志内容与业务日志形式上大致相同,只是多了异常堆栈信息。异常堆栈代表在发生异常的情况下,异常对应的链路,异常堆栈中也具有异常对应的全限定类名与日志行号等信息。低代码应用开发者可以根据一定的搜索条件(比如异常堆栈日志包含的关键词)进行日志搜索,相应地,执行本方法实施例的电子设备响应于对异常堆栈日志包含的关键词的搜索操作,获取在第二编程语言下的异常堆栈日志,将异常堆栈日志由第二编程语言转换至第一编程语言,得到转换后的异常堆栈日志,并显示转换后的异常堆栈日志。
可选的,在显示转换后的异常堆栈日志之后,本公开实施例提供的低代码应用日志处理方法还可以包括:响应于对转换后的异常堆栈日志的第四操作,根据映射关系,将当前页面跳转至第二界面,第二界面包含转换后的异常堆栈日志对应的目标逻辑组件,第四操作包括双击操作、长按操作以及单击操作中的至少一种。
示例性地,参考上述除数为0的Java源码异常堆栈日志,可以通过预设文本切割算法对该异常堆栈日志进行切割处理,得到如下切割处理后的三条日志:
at com.aaa.generator.test.Compute2.computAmount(Compute2.java:10)
at com.aaa.generator.test.Compute1.computAmount(Compute1.java:15)
at com.aaa.generator.test.LoggerDemo.log(LoggerDemo.java:16)
针对上述切割处理后的三条日志中的每一条日志,采用预设文本切割算法可以切割出全限定类名和日志行号。低代码应用开发者可以双击上述三条日志中的任一条日志,从而执行本方法实施例的电子设备根据第一编程语言与第二编程语言之间的映射关系,将当前页面跳转至第二界面,即跳转到异常堆栈日志对应的目标逻辑组件。具体的,根据从异常堆栈日志获得的全限定类名,获取目标源码位置信息,根据目标源码位置信息和从异常堆栈日志获得的日志行号,采用预设源码映射算法(比如sourcemap)确定目标逻辑节点路径;根据目标逻辑节点路径,将当前页面跳转至第二界面。
在一种可能的实施方式中,可以将上述除数为0的Java源码异常堆栈日志中的异常种类及信息进行转化,转化为如下低代码开发者通俗易懂形式,即将“java.lang.ArithmeticException: / by zero”转化为“算数运算异常:除数为0”。最终将除数为0的Java源码异常堆栈日志转化为如下在第一编程语言下的对应异常堆栈日志:
2023-02-13 17:01:23.662(日志打印时间) ERROR(日志级别) [全局逻辑:LoggerDemo(全局逻辑名称)] error is 算数运算异常:除数为0
at 全局逻辑: Compute2(全局逻辑名称)
at 全局逻辑: Compute1(全局逻辑名称)
at 全局逻辑: LoggerDemo(全局逻辑名称)
其中,“算数运算异常:除数为0”表示异常种类及信息;低代码应用开发者可以分别单击“at 全局逻辑: Compute2(全局逻辑名称)”、“at 全局逻辑: Compute1(全局逻辑名称)”以及“at 全局逻辑: LoggerDemo(全局逻辑名称)”,来跳转至相应的第二界面
低代码应用开发者可以双击上述三条日志中的任一条日志,从而执行本方法实施例的电子设备根据第一编程语言与第二编程语言之间的映射关系,将当前页面跳转至第二界面。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图8对本公开示例性实施方式的低代码应用日志处理装置进行说明。本公开示例性实施方式的装置,可以实现前述低代码应用日志处理方法实施例中的各个过程,并达到相同的功能和效果。
图8为本公开一实施例提供的低代码应用日志处理装置的结构示意图,如图8所示,本公开实施例的低代码应用日志处理装置800包括:第一确定模块801、生成模块802、第二确定模块803和输出模块804。其中:
第一确定模块801,用于确定目标应用的目标业务场景。
生成模块802,用于响应于针对目标日志组件的第一操作,生成第一界面,第一界面包含声明信息配置项,声明信息配置项用于对目标日志的声明信息进行配置,目标日志与目标业务场景相对应。
第二确定模块803,用于响应于针对声明信息配置项的第二操作,确定声明信息,声明信息用于匹配目标日志的日志内容。
输出模块804,用于输出日志内容。
在一种可能的实施方式中,声明信息配置项包括参数信息配置项,第二确定模块803可以具体用于:响应于针对参数信息配置项的第二操作,确定声明信息,参数信息包括参数名和参数值,参数名可编辑,参数值为目标业务逻辑中的变量,参数名和参数值之间采用第一预设拼接函数进行拼接。
在一种可能的实施方式中,参数信息包括多个,第二确定模块803在用于响应于针对参数信息配置项的第二操作,确定声明信息时,可以具体用于:响应于针对参数信息配置项的第二操作,采用第二预设拼接函数对各参数信息进行拼接,确定声明信息。
在一种可能的实施方式中,声明信息配置项还包括日志级别配置项,第二确定模块803可以具体用于:响应于针对日志级别配置项的第二操作,确定声明信息。
在一种可能的实施方式中,第一操作包括拖拽操作、双击操作、长按操作、单击操作以及粘贴操作中的至少一种;第二操作包括输入操作、筛选操作和拖拽操作中的至少一种。
在一种可能的实施方式中,目标应用是基于第一编程语言获得的,第一编程语言用于以图形化编程方式开发应用,输出模块804可以具体用于:通过编译器将目标应用由第一编程语言编译至第二编程语言,第二编程语言用于以文本方式开发应用;通过第二编程语言运行目标应用,并获取目标应用在第二编程语言下所对应的日志,日志包括目标日志;其中,在编译过程中,基于预设源码映射算法获取第一编程语言与第二编程语言之间的映射关系,映射关系包括目标应用在第一编程语言下的逻辑节点路径与目标应用在第二编程语言下的源码位置信息之间的映射关系,源码位置信息包括开始行号和结束行号,逻辑节点路径用于唯一标识目标应用在第一编程语言下对应的逻辑组件。
在一种可能的实施方式中,低代码应用日志处理装置800还可以包括第一处理模块805,用于在输出模块804获取目标应用在第二编程语言下所对应的日志之后,响应于对目标日志包含的关键词的搜索操作,获取目标日志;将目标日志由第二编程语言转换至第一编程语言,得到转换后的目标日志;显示转换后的目标日志。
在一种可能的实施方式中,第一处理模块805在用于将目标日志由第二编程语言转换至第一编程语言,得到转换后的目标日志时,可以具体用于:采用预设文本切割算法对第二编程语言下的目标日志进行切割处理,得到切割处理后的目标日志,切割处理后的目标日志包括日志打印时间、日志级别、在第二编程语言下的目标逻辑对应的全限定类名、日志行号以及日志内容,日志行号用于表示打印日志源码在源码文件中的行号;将全限定类名替换为在第一编程语言下的目标逻辑对应的逻辑名称;根据日志打印时间、日志级别、逻辑名称以及日志内容,得到转换后的目标日志。
在一种可能的实施方式中,第一处理模块805还可以用于:在显示转换后的目标日志之后,响应于对转换后的目标日志的第三操作,根据映射关系,将当前页面跳转至第一界面,第三操作包括双击操作、长按操作以及单击操作中的至少一种。
在一种可能的实施方式中,第一处理模块805在用于根据映射关系,将当前页面跳转至第一界面时,可以具体用于:根据全限定类名,获取目标源码位置信息;根据目标源码位置信息和日志行号,采用预设源码映射算法确定目标逻辑节点路径;根据目标逻辑节点路径,将当前页面跳转至第一界面。
在一种可能的实施方式中,目标源码位置信息包括多个,第一处理模块805在用于根据目标源码位置信息和日志行号,采用预设源码映射算法确定目标逻辑节点路径时,可以具体用于:按照每个目标源码位置信息中的开始行号进行排序,得到排序后依第一序列确定的目标源码位置信息,第一序列为开始行号序列;根据日志行号、每个目标源码位置信息中的开始行号和结束行号,对依第一序列确定的目标源码位置信息进行过滤处理,得到过滤处理后的目标源码位置信息,过滤处理后的目标源码位置信息中的开始行号小于或等于日志行号,且结束行号大于或等于日志行号;根据过滤处理后的目标源码位置信息,确定最大开始行号;按照每个过滤处理后的目标源码位置信息中的结束行号进行排序,得到排序后依第二序列确定的目标源码位置信息,第二序列为结束行号序列;根据依第二序列确定的目标源码位置信息,确定最小结束行号;根据最大开始行号和最小结束行号对应的目标源码位置信息,确定目标逻辑节点路径。
在一种可能的实施方式中,第一处理模块805在用于按照每个目标源码位置信息中的开始行号进行排序,得到排序后依第一序列确定的目标源码位置信息时,可以具体用于:若目标源码位置信息中包含相同的开始行号,则将包含相同开始行号的目标源码位置信息按照结束行号进行排序,得到依第一序列确定的目标源码位置信息。
在一种可能的实施方式中,第一处理模块805在用于按照每个过滤处理后的目标源码位置信息中的结束行号进行排序,得到排序后依第二序列确定的目标源码位置信息时,可以具体用于:若目标源码位置信息中包含相同的结束行号,则将包含相同结束行号的目标源码位置信息按照开始行号进行排序,得到依第二序列确定的目标源码位置信息。
在一种可能的实施方式中,低代码应用日志处理装置800还可以包括第二处理模块806,用于在输出模块804获取目标应用在第二编程语言下所对应的日志之后,响应于对异常堆栈日志包含的关键词的搜索操作,获取在第二编程语言下的异常堆栈日志;将异常堆栈日志由第二编程语言转换至第一编程语言,得到转换后的异常堆栈日志;显示转换后的异常堆栈日志。
在一种可能的实施方式中,异常堆栈日志包括空指针异常日志、数组越界日志和除数为0日志中的至少一种。
在一种可能的实施方式中,第二处理模块806还可以用于:在显示转换后的异常堆栈日志之后,响应于对转换后的异常堆栈日志的第四操作,根据映射关系,将当前页面跳转至第二界面,第二界面包含转换后的异常堆栈日志对应的目标逻辑组件,第四操作包括双击操作、长按操作以及单击操作中的至少一种。
本公开实施例的装置,可以用于执行上述任一方法实施例中低代码应用日志处理方法的方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例的基础上,图9为本公开一实施例提供的低代码应用日志处理系统的示意图,如图9所示,本公开实施例的低代码应用日志处理系统包括:日志声明模块901、日志采集模块902和日志查看模块903。其中:
日志声明模块901,用于提供可视化日志编辑组件;低代码应用开发者拖拽日志组件至IDE可视化编辑区域后,即可对日志的声明信息进行可视化编辑,声明信息包括日志级别与日志内容等;编辑的内容会形成第一编程语言进行记录保存,最终获得第一编程语言下的应用。
日志采集模块902,用于第一编程语言下的日志的运行与收集;借助于编译器,将应用由第一编程语言编译为第二编程语言(比如Java),其中,日志作为第一编程语言下的应用的一个子组成部分,被编译为第二编程语言下的日志打印子组成部分;同时,借助于已有的第二编程语言运行时(比如Java JVM)运行编译好的应用;在应用运行期间,第二编程语言打印输出日志;借助于第二编程语言日志采集器,对日志进行采集,采集的日志经过一定处理后,发送至日志存储器进行存储。
日志查看模块903,用于第一编程语言日志的查看;通过搜索条件搜索出第二编程语言下的打印日志后,借助于预设源码映射算法(比如sourcemap),将日志由第二编程语言转换为以第一编程语言概念为基础的第一编程语言下的日志,从而为低代码应用开发者提供一致的第一编程语言下的日志视图;同时,低代码应用开发者点击第一编程语言下的日志链接,借助于sourcemap,也可以跳转至相应的可视化编辑区,方便低代码应用开发者定位某个业务场景下的代码实现逻辑问题。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图10对本公开示例性实施方式的存储介质进行说明。
图10为本公开一实施例提供的存储介质示意图。参考图10所示,存储介质1000中存储着根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图11对本公开示例性实施方式的计算设备进行说明。
图11显示的计算设备1100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
图11为本公开一实施例提供的计算设备的结构示意图,如图11所示,计算设备1100以通用计算设备的形式表现。计算设备1100的组件可以包括但不限于:上述至少一个处理单元1101、上述至少一个存储单元1102,连接不同系统组件(包括处理单元1101和存储单元1102)的总线1103。示例性地,处理单元1101可以具体为处理器,存储单元1102存储计算机执行指令,处理单元1101执行存储单元1102存储的计算机执行指令,以实现上述的低代码应用日志处理方法。
总线1103包括数据总线、控制总线和地址总线。
存储单元1102可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)11021和/或高速缓存存储器11022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)11023。
存储单元1102还可以包括具有一组(至少一个)程序模块11024的程序/实用工具11025,这样的程序模块11024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备1100也可以与一个或多个外部设备1104(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口1105进行。并且,计算设备1100还可以通过网络适配器1106与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图11所示,网络适配器1106通过总线1103与计算设备1100的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了低代码应用日志处理装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (7)

1.一种低代码应用日志处理方法,包括:
确定目标应用的目标业务场景;
响应于针对目标日志组件的第一操作,生成第一界面,所述第一界面包含声明信息配置项,所述声明信息配置项用于对目标日志的声明信息进行配置,所述目标日志与所述目标业务场景相对应;
响应于针对所述声明信息配置项的第二操作,确定所述声明信息,所述声明信息用于匹配所述目标日志的日志内容;
输出所述日志内容;
所述目标应用是基于第一编程语言获得的,所述第一编程语言用于以图形化编程方式开发应用,所述输出所述日志内容,包括:
通过编译器将所述目标应用由第一编程语言编译至第二编程语言,所述第二编程语言用于以文本方式开发应用;
通过所述第二编程语言运行所述目标应用,并获取所述目标应用在所述第二编程语言下所对应的日志,所述日志包括所述目标日志;
其中,在编译过程中,基于预设源码映射算法获取所述第一编程语言与所述第二编程语言之间的映射关系,所述映射关系包括所述目标应用在所述第一编程语言下的逻辑节点路径与所述目标应用在所述第二编程语言下的源码位置信息之间的映射关系,所述源码位置信息包括开始行号和结束行号,所述逻辑节点路径用于唯一标识所述目标应用在所述第一编程语言下对应的逻辑组件;
所述获取所述目标应用在所述第二编程语言下所对应的日志之后,还包括:
响应于对所述目标日志包含的关键词的搜索操作,获取所述目标日志;
将所述目标日志由所述第二编程语言转换至所述第一编程语言,得到转换后的目标日志;
显示所述转换后的目标日志;
所述显示所述转换后的目标日志之后,还包括:
响应于对所述转换后的目标日志的第三操作,根据所述映射关系,将当前页面跳转至所述第一界面,所述第三操作包括双击操作、长按操作以及单击操作中的至少一种。
2.根据权利要求1所述的低代码应用日志处理方法,所述声明信息配置项包括参数信息配置项,所述响应于针对所述声明信息配置项的第二操作,确定所述声明信息,包括:
响应于针对所述参数信息配置项的第二操作,确定所述声明信息,参数信息包括参数名和参数值,所述参数名可编辑,所述参数值为所述目标业务逻辑中的变量,所述参数名和参数值之间采用第一预设拼接函数进行拼接。
3.根据权利要求2所述的低代码应用日志处理方法,所述声明信息配置项还包括日志级别配置项,所述响应于针对所述声明信息配置项的第二操作,确定所述声明信息,包括:
响应于针对所述日志级别配置项的第二操作,确定所述声明信息。
4.根据权利要求1所述的低代码应用日志处理方法,所述获取所述目标应用在所述第二编程语言下所对应的日志之后,还包括:
响应于对异常堆栈日志包含的关键词的搜索操作,获取在所述第二编程语言下的异常堆栈日志;
将所述异常堆栈日志由所述第二编程语言转换至所述第一编程语言,得到转换后的异常堆栈日志;
显示所述转换后的异常堆栈日志。
5.一种低代码应用日志处理装置,包括:
第一确定模块,用于确定目标应用的目标业务场景;
生成模块,用于响应于针对目标日志组件的第一操作,生成第一界面,所述第一界面包含声明信息配置项,所述声明信息配置项用于对目标日志的声明信息进行配置,所述目标日志与所述目标业务场景相对应;
第二确定模块,用于响应于针对所述声明信息配置项的第二操作,确定所述声明信息,所述声明信息用于匹配所述目标日志的日志内容;
输出模块,用于输出所述日志内容;
所述目标应用是基于第一编程语言获得的,所述第一编程语言用于以图形化编程方式开发应用,所述输出模块,具体用于:通过编译器将所述目标应用由第一编程语言编译至第二编程语言,所述第二编程语言用于以文本方式开发应用;通过所述第二编程语言运行所述目标应用,并获取所述目标应用在所述第二编程语言下所对应的日志,所述日志包括所述目标日志;其中,在编译过程中,基于预设源码映射算法获取所述第一编程语言与所述第二编程语言之间的映射关系,所述映射关系包括所述目标应用在所述第一编程语言下的逻辑节点路径与所述目标应用在所述第二编程语言下的源码位置信息之间的映射关系,所述源码位置信息包括开始行号和结束行号,所述逻辑节点路径用于唯一标识所述目标应用在所述第一编程语言下对应的逻辑组件;
所述低代码应用日志处理装置还包括第一处理模块,用于在所述输出模块获取所述目标应用在所述第二编程语言下所对应的日志之后,响应于对所述目标日志包含的关键词的搜索操作,获取所述目标日志;将所述目标日志由所述第二编程语言转换至所述第一编程语言,得到转换后的目标日志;显示所述转换后的目标日志;以及在显示所述转换后的目标日志之后,响应于对所述转换后的目标日志的第三操作,根据所述映射关系,将当前页面跳转至所述第一界面,所述第三操作包括双击操作、长按操作以及单击操作中的至少一种。
6.一种计算设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至4中任一项所述的低代码应用日志处理方法。
7.一种存储介质,所述存储介质中存储有计算机程序指令,所述计算机程序指令被执行时,实现如权利要求1至4中任一项所述的低代码应用日志处理方法。
CN202310389318.2A 2023-04-13 2023-04-13 低代码应用日志处理方法、介质、装置和计算设备 Active CN116107524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310389318.2A CN116107524B (zh) 2023-04-13 2023-04-13 低代码应用日志处理方法、介质、装置和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310389318.2A CN116107524B (zh) 2023-04-13 2023-04-13 低代码应用日志处理方法、介质、装置和计算设备

Publications (2)

Publication Number Publication Date
CN116107524A CN116107524A (zh) 2023-05-12
CN116107524B true CN116107524B (zh) 2023-07-18

Family

ID=86260164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310389318.2A Active CN116107524B (zh) 2023-04-13 2023-04-13 低代码应用日志处理方法、介质、装置和计算设备

Country Status (1)

Country Link
CN (1) CN116107524B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116540997B (zh) * 2023-07-07 2023-09-26 杭州朗和科技有限公司 数据类型声明方法、介质、装置和计算设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107330034A (zh) * 2017-06-26 2017-11-07 百度在线网络技术(北京)有限公司 一种日志分析方法和装置、计算机设备、存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514072B (zh) * 2012-06-28 2017-11-10 中兴通讯股份有限公司 一种用于可视化编程的图形化业务的调试方法及装置
CN109492039A (zh) * 2018-11-06 2019-03-19 北京字节跳动网络技术有限公司 一种日志数据的记录方法、装置、电子设备及可读介质
CN113448935B (zh) * 2020-03-24 2024-04-26 伊姆西Ip控股有限责任公司 用于提供日志信息的方法、电子设备和计算机程序产品
CN113806212A (zh) * 2020-06-17 2021-12-17 北京字节跳动网络技术有限公司 应用程序异常定位方法、装置以及电子设备
CN112148279A (zh) * 2020-09-27 2020-12-29 北京百度网讯科技有限公司 日志信息处理方法、装置、电子设备和存储介质
CN114089982A (zh) * 2020-11-03 2022-02-25 西安京迅递供应链科技有限公司 前端页面生成方法、装置、设备和介质
US11662998B2 (en) * 2020-11-05 2023-05-30 Outsystems—Software Em Rede, S.A. Detecting duplicated code patterns in visual programming language code instances
CN114546793A (zh) * 2020-11-24 2022-05-27 腾讯科技(深圳)有限公司 一种日志生成方法、装置和计算机可读存储介质
CN114647548A (zh) * 2020-12-18 2022-06-21 网联清算有限公司 一种日志生成方法及装置
CN113918151A (zh) * 2021-10-12 2022-01-11 平安国际智慧城市科技股份有限公司 低代码的页面开发方法、装置、设备及存储介质
CN114995803A (zh) * 2022-05-31 2022-09-02 中国电信股份有限公司 人机界面的开发方法、低代码开发平台、终端以及介质
CN115048083A (zh) * 2022-06-24 2022-09-13 中国工商银行股份有限公司 组件的可视化方法、装置、存储介质及电子设备
CN115080406A (zh) * 2022-06-24 2022-09-20 平安银行股份有限公司 代码日志生成方法、装置、设备和存储介质
CN115421713A (zh) * 2022-07-28 2022-12-02 泰豪软件股份有限公司 表单可视化配置方法、系统、可读存储介质及电子设备
CN115454956A (zh) * 2022-09-14 2022-12-09 中信百信银行股份有限公司 日志生成方法、装置、电子设备及存储介质
CN115543234A (zh) * 2022-10-11 2022-12-30 平安银行股份有限公司 日志打印方法及其相关设备
CN115543290B (zh) * 2022-10-12 2024-04-19 睿珀智能科技有限公司 可视化编程方法及系统
CN115509522A (zh) * 2022-10-31 2022-12-23 北京百度网讯科技有限公司 面向低代码场景的接口编排方法、系统、电子设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107330034A (zh) * 2017-06-26 2017-11-07 百度在线网络技术(北京)有限公司 一种日志分析方法和装置、计算机设备、存储介质

Also Published As

Publication number Publication date
CN116107524A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
US10353796B2 (en) System and method for using development objectives to guide implementation of source code
US11675575B2 (en) Checking source code validity at time of code update
CN104346153A (zh) 用于翻译应用程序的文本信息的方法和系统
CN109564540B (zh) 用于jit编译器的调试的系统、方法和设备
US20080313208A1 (en) Apparatus, system, and method for automated context-sensitive message organization
CN110688142A (zh) 应用程序编程接口的发布方法、设备及存储介质
CN112035443B (zh) 基于Linux平台的大数据执行方法、系统、设备及存储介质
CN103914315A (zh) 驱动程序的配置方法
CN111158741B (zh) 监控业务模块对第三方类库依赖关系变化的方法及装置
CN116107524B (zh) 低代码应用日志处理方法、介质、装置和计算设备
CN115543290B (zh) 可视化编程方法及系统
CN101866315A (zh) 软件开发工具的测试方法及系统
CN113342654A (zh) 脚本语言代码调试方法及装置、可读存储介质及电子设备
Jaworski et al. Expert Python Programming: Become a master in Python by learning coding best practices and advanced programming concepts in Python 3.7
CN114356964A (zh) 数据血缘构建方法、装置、存储介质及电子设备
US20220374212A1 (en) Indexing and accessing source code snippets contained in documents
US11977473B2 (en) Providing a pseudo language for manipulating complex variables of an orchestration flow
US11947966B2 (en) Identifying computer instructions enclosed by macros and conflicting macros at build time
CN115686467A (zh) 动态语言中的类型推断
CN108334313A (zh) 用于大型soc研发的持续集成方法、装置及代码管理系统
CN111488275B (zh) Ui自动化测试方法、装置、存储介质及电子设备
CN110737431B (zh) 软件开发方法、开发平台、终端设备及存储介质
CN113901025A (zh) 数据库管理方法、装置、设备和存储介质
CN112306501A (zh) 业务数据采集方法、装置、存储介质和计算设备
US9038049B2 (en) Automated discovery of resource definitions and relationships in a scripting environment

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd.