日志

日志

日志就是软件为自己写的日记,每一条日志记录用来记叙一件事。
日志包含的元素一般有(有点像写记叙文的几大元素=.=):

  1. 时间:所记录时间的发生时间,通常至少精确到分钟级别。
  2. 地点:用来定位所记录事件发生时的“位置信息”,通常包括机器名(本机记录的话可以省略),进程ID、线程ID等。
  3. 主题(来源):即该事件的实施者,根据需要可以是服务名称、模块名称或类名和函数名。
  4. 事件:对所发生的事件的描述
  5. 类型(严重程度):该事件的严重程序,可以分为信息(information)、警告(warning)、错误(error)等,根据需求可划分更详细的等级。
ELF服务
  • 在Windows系统默认启动的服务中,该服务负责事件日志的服务,其名称为Event Log,简称为ELF服务。
  • 日志服务是自动启动的,并且是不可停止的。在任务管理器中也不允许杀掉Services.EXE。如果强行杀掉它,那么系统检测到就会自动关机(罢工啦︿( ̄︶ ̄)︿)
  • ELF是以表格的形式来存储日志记录的,表格的每一行对应一条日志记录,存储着这条记录的基本信息和复数信息的偏移地址。
添加日志记录到ELF
  1. 在注册表中注册事件源
  2. 调用ELF的API来取的事件源句柄:RegisterEventSource
HANDLE RegisterEventSource(
  LPCSTR lpUNCServerName,		//用来指定按UNC规范表示的机器名,如果是操作本机的日志文件,那么只要指定NULL
  LPCSTR lpSourceName	//用来指定事件源名称,与第一步中注册的子键名一致。如果事件源名称在指定机器的注册表中不存在,那么系统会使用默认的应用类日志下的Application事件源。
);
  1. 添加日志记录API:ReportEvent,这个API不会直接去写日志文件,而是将日志记录发送给ELF服务
BOOL ReportEvent(
  HANDLE hEventLog,	//事件源句柄,第2步获取到的那个
  WORD   wType,		//指定事件的类型
  WORD   wCategory,	//用来指定事件在事件源中的类属号,其分类规则是应用程序所定义的
  DWORD  dwEventID,	//用来指定事件的ID号,ELF通过这个ID值定位这条日志所对应的格式信息。由应用软件定义的
  PSID   lpUserSid,	//指定用户的安全标识,可以为NULL
  WORD   wNumStrings,	//用来指定lpStrings所指向的字符串数组所包含的字符串指针个数
  DWORD  dwDataSize,	//用来指定lpRawData所指向的原始数据缓冲区的长度
  LPCSTR *lpStrings,
  LPVOID lpRawData
);

事件类型常量定义:

含义
EVENTLOG_SUCCESS0x0000Information event
EVENTLOG_AUDIT_FAILURE0x0010Failure Audit event
EVENTLOG_AUDIT_SUCCESS0x0008Success Audit event
EVENTLOG_ERROR_TYPE0x0001Error event
EVENTLOG_INFORMATION_TYPE0x0004Information event
EVENTLOG_WARNING_TYPE0x0002Warning event

在这里插入图片描述

CLFS

CLFS是Common Log File System的简称,与ELF相比,CLFS的速度更快,可靠性也更高。
CLFS是对文件系统的扩展,其支持来源于Windows内核和驱动程序,因此具有更好的可靠性和更高的性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值