errlog 子例程

用途

将应用程序错误记录到系统错误日志中。

运行时服务库 (librts.a)

语法

#include <sys/errids.h>
int errlog ( ErrorStructure, Length )
void *ErrorStructure;
unsigned int Length;

描述

errlog 子例程将错误日志条目写入 /dev/error 文件。 错误日志 子例程是由应用程序使用的。

err_rec 结构到错误日志的传输由 write 子例程到 /dev/error 特殊文件。

errdemon 进程从 /dev/error 文件读取并将错误日志条目写入系统错误日志。 在转至日志之前,会将与资源名称 (如果有) 关联的时间戳记,机器标识,节点标识和软件重要产品数据添加到条目中。

参数

表 1. 参数
描述
ErrorStructure 指向一个包含错误记录的错误记录结构。 在 /usr/include/sys/err_rec.h 文件中输入有效的错误记录结构。 可用的两个错误记录结构是 err_recerr_rec0。 在以下情况下使用 err_rec 结构:detail_data字段是必需的。 如果在请求中未找到detail_data字段不是必需的,将使用 err_rec0 结构。
struct err_rec0 {
   unsigned int  error_id;
   char  resource_name[ERR_NAMESIZE];
};
struct err_rec {
   unsigned int error_id;
   char resource_name[ERR_NAMESIZE];
   char  detail_data[1];
};

结构 err_recerr_rec0 的字段如下所示:

error_id
为系统错误模板数据库指定索引,并由 错误更新 命令在添加错误模板时指定。 将 错误更新 命令与 -h 标志配合使用以获取#define此 8 位十六进制索引的语句。
resource_name
指定已检测到该错误的资源的名称。 对于软件错误,这是软件组件的名称或可执行程序的名称。 对于硬件错误,这是设备或系统组件的名称。 它不表示组件发生故障或需要更换,而是用于确定要用于分析错误的相应诊断模块。
detail_data
指定 0 提供的数据的 0 到 ER_REC_MAX 字节的数组。 根据以下信息, 埃尔普特 命令可能以十六进制,字母数字或二进制格式显示此数据:data_encoding错误日志模板中的字段error_id
长度 指定 err_rec 结构的长度 (以字节为单位) ,此长度等于error_idresource_name字段加上字段的长度 (以字节为单位)detail_data

返回值

表 2。 返回值
描述
重大安全事件数量 已成功记录条目。
-1 未记录该条目。

文件

表 3。 文件
描述
/dev/error 提供错误日志组件需要的标准设备驱动程序接口。
/usr/include/sys/errids.h 包含错误标识的定义。
/usr/include/sys/err_rec.h 包含定义为 错误保存 内核服务和 错误日志 子例程的参数的结构。
/var/adm/ras/errlog 维护系统错误日志。