# 操作日志概述

> 主要用于记录用户的行为日志，记录某个用户在进行系统操作时的操作信息，包括用户信息，被操作的应用，被操作的对象，操作名称，对应的操作描述，操作时间，操作组织，客户端类型，客户端地址客户端名称等等与本次操作有关的基本信息，以便能了解统计和分析用户对系统的使用情况

-------------------------------------------------------------------------------------

## 记录操作日志

##### 接口名：addLog
> 添加新的操作日志记录时，可以调用微服务方法`ILogService:addLog(AppLogInfo appLogInfo);`，具体实现类为：`LogServiceImpl`，传入日志对象实体即可

**参数说明：**

|参数名称 | 数据类型 | 必选 | 说明|
|---|---|---|---|
|userId | Long | 否 | 用户ID，不传系统会从上下文获取，建议传上|
|bizAppID | String | 是 | 应用ID|
|bizObjID | String | 是 | 操作对象|
|orgID | Long | 否 | 操作组织，不传系统会从上下文获取，建议传上|
|opTime | Date | 否 | 操作时间，不传系统会自动当前时间，建议传上|
|clientType | String | 否 | 客户端类型，不传系统会从上下文获取，建议传上|
|clientIP | String | 否 | 客户端地址，不传系统会从上下文获取，建议传上|
|clientName | String | 否 | 客户端名称，不传系统会从上下文获取，建议传上|
|opName | String | 是 | 操作名称|
|opDescription | Long | 是 | 操作描述|


**代码示例：**

```java
// 调用示例
ILogService service = (ILogService) ServiceFactory.getService(ILogService.class)
service.addLog(appLogInfo);
```

-------------------------------------------------------------------------------------

## 批量记录操作日志

##### 接口名：addBatchLog
> 批量添加新的操作日志记录时，可以调用微服务方法`ILogService:addBatchLog(List<AppLogInfo> appLogInfoList);`，具体实现类为：`LogServiceImpl`，传入日志对象实体集合即可

**参数说明：** 传入的是AppLogInfo对象集合，各个字段说明如下*

|参数名称 | 数据类型 | 必选 | 说明|
|---|---|---|---|
|userId | Long | 否 | 用户ID，不传系统会从上下文获取，建议传上|
|bizAppID | String | 是 | 应用ID|
|bizObjID | String | 是 | 操作对象|
|orgID | Long | 否 | 操作组织，不传系统会从上下文获取，建议传上|
|opTime | Date | 否 | 操作时间，不传系统会自动当前时间，建议传上|
|clientType | String | 否 | 客户端类型，不传系统会从上下文获取，建议传上|
|clientIP | String | 否 | 客户端地址，不传系统会从上下文获取，建议传上|
|clientName | String | 否 | 客户端名称，不传系统会从上下文获取，建议传上|
|opName | String | 是 | 操作名称|
|opDescription | Long | 是 | 操作描述|



**代码示例：**

```java
// 调用示例
ILogService service = (ILogService) ServiceFactory.getService(ILogService.class)
service.addBatchLog(appLogInfoList);
```

-------------------------------------------------------------------------------------
