Package org.shoulder.log.operation.model
Class OperationLogDTO
java.lang.Object
org.shoulder.log.operation.model.OperationLogDTO
- All Implemented Interfaces:
Serializable,Cloneable
操作日志实体
(所有字段均为 protect: 方便使用者灵活扩展)
重要信息:操作时间、用户id、用户名称,IP、操作动作、被操作对象、操作结果、操作详情
其他信息:操作者终端标识、操作者使用的终端类型、追踪链路标识 traceId
todo 【可选优化】考虑记录请求 url?
- Author:
- lym
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String应用标识 (必填) 默认取 `spring.application.name`protected String与本次操作所关联其他业务操作的业务号 ,用于多个请求完共同完成一个业务功能时(选填) 例 上传csv进行数据的批量导入场景:上传导入文件、校验导入数据、点击确认导入、导入成功业务相关可以填同一个标识符 上传新头像、确定修改个人信息也可以有相同的业务标识protected String本次操作的详细描述(选填) 详细的描述用户的操作内容,如被操作对象的 json 输出,注意不要输出密码等敏感信息,或是具体发生了怎样的事情操作详情占位填充项,用于填充 detailKey 中的 %1,%2,%nprotected String操作详情对应的多语言key(选填) - 若不支持多语言则不填。 占位符使用 %1,%2,%n形式,n表示第n个参数;protected Instant操作结束时间protected String当操作结果为失败时,记录操作失败对应的错误码(选填)扩展字段 (选填) key 不能为 nullprotected Long应用实例编号 / 机器序号protected String被操作对象唯一标示 (选填) 例: tb_user 的 userIdprotected String操作对象的名称 (选填) 若存在多个值时,以 ","分隔 例: "user1,user2,user3"protected String被操作对象的类型标识 (选填) Key格式为:objectType.<操作对象类型标识>protected String具体操作标识 【必填】 多语言翻译文件由服务提供,导入到网关或日志服务前端,展示时翻译。 例:注册、登录、退出、查询、新增、修改、删除、下载等protected Instant操作发生时间protected List<OpLogParam> 操作参数,记录业务操作的参数信息,用于操作审计和分析 (选填)protected String操作者所在终端标识,如 IP (选填) 用户终端机器IP 例:192.168.0.10 若系统内部触发为服务部署机器IPprotected OperationResult本次操作结果(必填)protected String租户编码protected String操作者终端标识 (选填),也可以生成 UUID 手机设备的唯一标识:IMSI、IMEI、ESN、MEID PC 中网卡唯一标识 MAC 地址 系统内部触发记为服务器所在机器 MAC 地址protected String操作者终端信息,如浏览器可获取 UserAgent、App 可获取手机类型 (选填)protected TerminalType操作者终端类型 (必填)protected String本次业务操作的调用链标识(选填)protected String操作者标识 【必须】 用户 ————————— 用户名唯一标识,用户名、用户id等 系统内部触发 —— 应用标识 格式为 "system.应用标识" 例: system.orderprotected String操作者姓名(选填) 用户 ————————— 用户昵称, 例: lym 系统内部触发 —— 不填protected String操作者所属组唯一标识(选填) 用户 ————————— 所属组织/用户组/群/部门标识 例: tb_user_group 表的 主键 系统内部触发 —— 不填protected String操作者所属组名称(选填)protected String操作者真实姓名,适合在实名制较强的后台管理系统 (选填) 用户 ————————— 用户对应的真实姓名 系统内部触发 —— 不填 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddDetailItem(String detailItem) clone()cloneTo(OperationLogDTO clone) 克隆日志实体<T> TgetExtField(String extKey) setExtField(String extKey, Object value) put Field to extends has ordersetOperableObject(Operable operable) 填充单个被操作对象信息setOperator(Operator operator) 填充操作者信息
-
Field Details
-
userId
操作者标识 【必须】 用户 ————————— 用户名唯一标识,用户名、用户id等 系统内部触发 —— 应用标识 格式为 "system.应用标识" 例: system.order -
userName
操作者姓名(选填) 用户 ————————— 用户昵称, 例: lym 系统内部触发 —— 不填 -
userRealName
操作者真实姓名,适合在实名制较强的后台管理系统 (选填) 用户 ————————— 用户对应的真实姓名 系统内部触发 —— 不填 -
userOrgId
操作者所属组唯一标识(选填) 用户 ————————— 所属组织/用户组/群/部门标识 例: tb_user_group 表的 主键 系统内部触发 —— 不填 -
userOrgName
操作者所属组名称(选填) -
terminalType
操作者终端类型 (必填) -
remoteAddress
操作者所在终端标识,如 IP (选填) 用户终端机器IP 例:192.168.0.10 若系统内部触发为服务部署机器IP -
terminalId
操作者终端标识 (选填),也可以生成 UUID 手机设备的唯一标识:IMSI、IMEI、ESN、MEID PC 中网卡唯一标识 MAC 地址 系统内部触发记为服务器所在机器 MAC 地址 -
terminalInfo
操作者终端信息,如浏览器可获取 UserAgent、App 可获取手机类型 (选填) -
operation
具体操作标识 【必填】 多语言翻译文件由服务提供,导入到网关或日志服务前端,展示时翻译。 例:注册、登录、退出、查询、新增、修改、删除、下载等 -
operationTime
操作发生时间 -
endTime
操作结束时间 -
params
操作参数,记录业务操作的参数信息,用于操作审计和分析 (选填)- See Also:
-
detail
本次操作的详细描述(选填) 详细的描述用户的操作内容,如被操作对象的 json 输出,注意不要输出密码等敏感信息,或是具体发生了怎样的事情 -
detailKey
操作详情对应的多语言key(选填) - 若不支持多语言则不填。 占位符使用 %1,%2,%n形式,n表示第n个参数; -
detailItems
操作详情占位填充项,用于填充 detailKey 中的 %1,%2,%n -
result
本次操作结果(必填) -
errorCode
当操作结果为失败时,记录操作失败对应的错误码(选填) -
objectType
被操作对象的类型标识 (选填) Key格式为:objectType.<操作对象类型标识> -
objectId
被操作对象唯一标示 (选填) 例: tb_user 的 userId -
objectName
操作对象的名称 (选填) 若存在多个值时,以 ","分隔 例: "user1,user2,user3" -
businessId
与本次操作所关联其他业务操作的业务号 ,用于多个请求完共同完成一个业务功能时(选填) 例 上传csv进行数据的批量导入场景:上传导入文件、校验导入数据、点击确认导入、导入成功业务相关可以填同一个标识符 上传新头像、确定修改个人信息也可以有相同的业务标识 -
tenantCode
租户编码 -
appId
应用标识 (必填) 默认取 `spring.application.name` -
instanceId
应用实例编号 / 机器序号 -
traceId
本次业务操作的调用链标识(选填) -
extFields
扩展字段 (选填) key 不能为 null
-
-
Constructor Details
-
OperationLogDTO
public OperationLogDTO() -
OperationLogDTO
引导使用者填写必要字段
-
-
Method Details