一、缘起
应网友邀请,写个关于日志用法文章。
UiPath版本:2.3。
UiPath中有很多种日志:Setup Logs(安装UiPath时生产的)、Studio Logs(Studio的日志)、Robot Logs(运行流程时产生的日志)、Orchestrator Logs等;本文所说的是Robot Logs。
二、Log的用途
日志是带时间戳的文件,其中包含与应用程序相关的信息事件,错误和警告消息。
日志可以记录:流程运行过程中开发者需要显示的信息、流程出错时系统返回的错误信息,以便开发者或维护人员了解流程的运行过程及发现错误原因。
三、日志类别
https://studio.uipath.com/docs/types-of-logs译文
根据日志类别判断,日志类别描述日志消息是由用户设计还是由系统自动生成,日志可以是:
默认日志 - 在流程执行开始和结束时,系统错误发生且执行停止时,或者日志记录设置被配置为记录每个活动的执行时,默认生成。此类别记录的事件包括:
每次启动进程时都会生成执行开始(级别=信息)
每次完成一个过程时都会生成执行结束(级别=信息)
每次启动流程中的事务时都会生成事务启动(级别=信息)
每次完成流程中的事务时都会生成事务结束(级别=信息)
每次执行遇到错误时都会生成错误日志并停止(Level = Error)
如果机器人日志记录设置设置为详细并包含,活动名称,类型,变量值,参数等,则会生成调试日志(级别=跟踪)。
用户定义的日志 - 使用“Log Message”或“Write Line”时,根据用户在Studio中设计的过程生成的日志。
记录字段
默认字段
这些日志字段存在于所有日志中:
消息:日志消息
级别:定义日志严重性
时间戳:执行操作的确切日期和时间
FileName:正在“执行”的.xaml文件的名称
jobId:运行该过程的作业的关键
processName:触发日志记录的进程的名称
processVersion:进程的版本号
windowsIdentity:执行已记录操作的用户的名称
robotName:机器人的名称(在Orchestrator中定义)
注意:
该processName和processVersion如果进程不连接在Orchestrator本地运行可能不会出现。
特定类型的字段
根据日志类型,存在日志字段:
执行结束的totalExecutionTimeInSeconds
执行结束的totalExecutionTime
事务开始和事务结束的queueName
Transaction Start和Transaction End的transactionID
事务开始和事务结束的transactionState
TransactionStatus for Transaction End
TransactionExecutionTime用于Transaction End
用于调试日志的activityInfo。它是带有以下字段的JSON消息
显示名称
国家(故障,封闭,执行)
活动
变量
参数
注意:
消息中始终只显示前3个。变量和参数通常具有子字段。
用户定义的字段
这些字段在Studio中使用“ Add Log Fields”定义,并在生成后显示在所有后续日志中,除非它们被“Remove Log Fields”删除。
四、UiPath关于log的Activity
Add Log Fields:增加日志字段;
Log Message:将信息记录到日志;
Remove Log Fields:移除日志字段;
4.1、Log Message
https://activities.uipath.com/docs/log-message译文
英文全称:UiPath.Core.Activities.LogMessage
作用:在指定的级别写入指定的诊断消息。这些消息也会发送到Orchestrator并显示在“ 日志”页面中。
属性
基本
DisplayName - 活动的显示名称。
日志
级别 - 要记录的消息的严重性级别。可以使用以下选项:Trace, Info, Warn, Error, Fatal(跟踪,信息,警告,错误,致命)。
消息 - 要记录的消息。根据从“级别”下拉列表中选择的选项,仅在该严重性级别显示该消息。仅支持字符串和字符串变量。
注意:所有字符串都必须在引号之间写入。
杂项
Private- 如果选中,则不再以Verbose级别(详细显示)记录变量和参数的值。
4.2 Add Log Fields
https://activities.uipath.com/docs/add-log-fields译文
英文全称:UiPath.Core.Activities.AddLogFields
作用:将自定义日志字段添加到Robot Execution Logs中。
属性
基本
DisplayName - 活动的显示名称。
输入
Fields - 要添加到每个后续日志行的字符串参数的集合。
杂项
Private - 如果选中,则不再以Verbose级别记录变量和参数的值。
重要!
创建与默认日志字段同名的自定义日志字段会导致日志记录过程损坏,并可能导致您正在运行的工作流中出现问题。
例如,创建调用的自定义日志字段jobId会导致此问题,jobId默认情况下会生成一个日志字段。
摘自:https://robot.uipath.com/docs/logging-levels
4.3 Remove Log Fields
https://activities.uipath.com/docs/remove-log-fields译文
英文全称:UiPath.Core.Activities.RemoveLogFields
作用:删除每个日志消息的自定义日志字段。
属性
基本
DisplayName - 活动的显示名称。
输入
Fields - 要从后续日志行中删除的字符串参数的集合。
杂项
Private - 如果选中,则不再以Verbose级别记录变量和参数的值。
五、日志级别的使用规范
Info、Warn、Error等级的Log禁止作为普通的调试信息使用,这些等级的Log是系统出现问题时候的重要分析线索,如果随意使用,将给Log分析人员带来极大困扰。
Log的内容,不要出现公司名称、个人名称或相关简称,Log内容不要出现无意义的内容,如连续的等号或星号或连续的数字等,Log内容要方便其他分析Log的人员查看。
(正文结束)
附1:关于本公众号
微信公众号名称:柴班说
欢迎转载与分享,也请注明出处。
附2:关于本文作者
微信号:chaijw
识别下面的二维码,可以与作者进行更为深入的交流。
网友评论