Aros/开发者/文档/日志记录
外观
这目前是一个草稿页面...
- log.resource
- 对日志记录的通用 API。
- debug.logger
- 用于调试日志输出的硬编码处理器。用于
- 其他日志类型,直到 exec 可以处理内存请求。
- generic.logger
- 在 log.resource:init() 之后使用的硬编码处理器,用于处理除调试日志记录之外的所有日志记录。
- 注意 -:不应在 allocmem/freemem(因为它可能使用它们)或 IRQ 中使用
- seriallog.resource
- 将 DEBUG 类型日志输出转储到串行设备的 ROM 常驻监听器
- (可通过 grub 命令行配置)
- C
- BufferLog LOGTYPE OUTPUTFILE
- 为指定的 LOGTYPE 注册一个监听器,该监听器将日志输出缓冲到 OUTPUTFILE。
- SYS
- Tools/LogViewer LOGFILE
- 用于显示使用 C:BufferLog 缓冲的 LOGFILE 的工具。
- LOG_TYPEID
- LOG_DATA
- LOG_TYPE_DEBUG
- DEBUG_ERROR
- DEBUG_WARN
- DEBUG_INFO
- LOG_TYPE_SYSTEM
- SYSTEM_ERROR
- SYSTEM_WARN
- SYSTEM_INFO
- LOG_TYPE_APPLICATION
- APPLICATION_ERROR
- APPLICATION_WARN
- APPLICATION_INFO
IPTR LOGR_RegisterProcessor(LOG_TYPEID, struct LogProcessor *)
IPTR LOGR_RegisterListener(LOG_TYPEID, struct LogListener *)
BOOL LOGR_LogEvent(LOG_TYPEID, LOG_DATA, char *LOG_SRC, char *LOG_TEMPLATE, args ...)
IPTR LOGR_ObtainLogEvents(LOG_TYPEID, LOG_EVENTFLAGS)
IPTR LOGR_LogEventDelete(IPTR)
IPTR LOGR_ReleaseLogEvents(IPTR)
用于将数据输出到指定的日志。
返回每个调用者的句柄。如果 (LOG_EVENTFLAGS == LOG_EVENTLIST_UNIQUE) 则只有在没有其他访问发生时才会成功。
内部:将 handle->active_event 设置为第一个日志条目,并增加其访问计数。
(信号量保护?)
内部:将 handle->active_event 设置为下一个日志条目 - 减少当前条目的访问计数并增加下一个条目的访问计数
(信号量保护?)
删除一个日志条目。
内部:删除 handle->active_event - 或者如果其访问计数 > 0,则将其标记为删除
必须使用从 LOGR_ObtainLogEvents 获取的句柄调用。减少 handle->active_event 的访问计数,并释放每个调用者的句柄。