主题
EVENT_TYPE 事件类型表
事件类型表用于组织系统事件和自定义事件,保存每种事件的编码、中英文名称、所属分类、启用状态和日志属性。查询事件目录、按分类选择事件或制作日志分类统计时,可使用本表。
本表中的一条记录表示一种事件或一个分类。具体发生时间、操作者和执行结果记录在 LOG_SYS 系统日志表中。
调用事件记录接口前,须先在本表配置对应的叶子事件(IS_EVENT=1)。未登记的名称和分类节点不能用于创建事件;日志级别取自该事件的配置,不自动使用默认级别。
位置
模型路径:/sysdata/data/tables/sys/EVENT_TYPE.tbl
物理表名:SZSYS_5_EVENT_TYPE
表结构
| 字段名 | 字段类型 | 字段描述 |
|---|---|---|
| EVENT_NAME | VARCHAR(128) | 事件或分类的唯一编码,主键,例如 sec.login。 |
| PARENT_NAME | VARCHAR(128) | EVENT_NAME 最后一个点号之前的前缀;不含点号的顶级节点为空。 |
| EVENT_DESC_CN | VARCHAR(256) | 中文名称。 |
| EVENT_DESC_EN | VARCHAR(256) | 英文名称。 |
| IS_EVENT | NUMBER(1) | 1:事件,位于层次末端;0:分类,包含下级节点。 |
| ENABLED | NUMBER(1) | 事件启用状态,1:启用,0:停用;分类取 1。 |
| LOG_LEVEL | VARCHAR(5) | 事件日志级别。常用值:IMPT(重要)、INFO(一般信息)、TRACE(跟踪);分类为空。 |
| DETAIL_LEVEL | NUMBER(1) | 详细日志级别,0:重要,1:一般信息,2:全部;分类为空。 |
| SECURITY_LEVEL | NUMBER(1) | 日志安全分类,0:普通,1:安全,2:系统;分类为空。 |
| LEVEL | NUMBER(2) | 节点层级,顶级为 0,第二级为 1,第三级为 2。 |
| LEVEL1_NAME | VARCHAR(128) | 当前节点所属的第一级名称标识;顶级节点填写自身编码。 |
| LEVEL2_NAME | VARCHAR(128) | 当前节点所属的第二级名称标识;顶级节点为空,第二级节点填写自身编码。 |
| LEVEL3_NAME | VARCHAR(128) | 当前节点所属的第三级名称标识;前两级节点为空,第三级节点填写自身编码。 |
表索引
| 类型 | 名称 | 字段列表 | 是否唯一 | 说明 |
|---|---|---|---|---|
| 主键 | PRIMARY | EVENT_NAME | 是 | 唯一标识事件或分类 |
分类层次
事件目录采用最多三级的父子层次。编码按点号分段,PARENT_NAME 取最后一个点号之前的前缀,例如 sec.login 的父编码为 sec,不能单独指定其他父节点。LEVEL1_NAME、LEVEL2_NAME、LEVEL3_NAME 表示从顶级到当前节点的完整路径。事件是末端节点,不能再包含下级;停用事件仍保留在所属分类中。
例如“系统运维 → 维护模式 → 开启系统运维”:
| 节点 | EVENT_NAME | PARENT_NAME | IS_EVENT | LEVEL |
|---|---|---|---|---|
| 系统运维 | sys | 空 | 0 | 0 |
| 维护模式 | sys.maintenance | sys | 0 | 1 |
| 开启系统运维 | sys.maintenance.enable | sys.maintenance | 1 | 2 |
其中“开启系统运维”事件的路径为:LEVEL1_NAME=sys、LEVEL2_NAME=sys.maintenance、LEVEL3_NAME=sys.maintenance.enable。查询全部事件时使用 IS_EVENT=1;只查询启用事件时,再加上 ENABLED=1。
与默认事件类型的关系
首次从旧版事件表迁移时,保留旧事件已有的名称描述及日志配置,补入新事件和新增字段,并将 VERB 级别转为 TRACE。迁移成功后保存新默认基准,后续升级按旧默认、当前配置和新默认进行比较,保留用户修改。
EVENT_TYPE_DEFAULT 默认事件类型表保存系统默认定义,本表保存当前定义。按 EVENT_NAME 对照两表,可以查看名称或日志属性与默认值的差异。
只有本表存在的编码,可能是用户新增事件,也可能是从旧版本保留的事件,不能仅凭默认表中不存在就断定其来源。比较配置时,应关注名称、启用状态和日志属性;层级及路径字段反映树的位置。
使用注意
- 关联事件时使用
EVENT_NAME,不要使用中英文名称作为标识。系统日志中的EVENT_NAME保存的也是事件名称标识。 - 分类记录不代表一次可执行或可记录的事件。统计日志时应区分分类和事件,避免将分类作为事件计数。
- 查询历史日志时不要仅保留启用事件,也不要因事件定义缺失而丢弃日志记录;缺少名称时可展示原事件名称标识。
SECURITY_LEVEL表示日志的安全分类,不用于控制用户访问模型或数据的权限。- 本表不开放通用数据编辑。不要单独修改层级或路径字段,以免与父子关系不一致。
