【WCE】使用事件日志服务(二)

来源:互联网 发布:淘宝广告图片怎么做的 编辑:程序博客网 时间:2024/04/20 13:32

浏览 common.reg 我们可以看到:

; @CESYSGEN IF CE_MODULES_EVENTLOG
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/EventLog/System]
"Output"="File"
"File"="SystemLog.xml"
"Format"="XML"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/EventLog/System/EventLog]
"EventMessageFile"="eventlogmsgs.dll"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/EventLog/Formatters]
"XML"="//windows//eventlog.dll"
"PlainText"="//windows//eventlog.dll"

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/EventLog/Outputters]
"File"="//windows//eventlog.dll"
"DebugOut"="//windows//eventlog.dll"

; The base directory that EventLogs are written to is specified in EventLogPath.
[HKEY_LOCAL_MACHINE/SYSTEM/ObjectStore]
"EnableEventLog"=dword:1
"EventLogPath"="//windows"

; @CESYSGEN ENDIF

其中,HKEY_LOCAL_MACHINE/SYSTEM/ObjectStore 键值:

  • EnableEventLog 指定是否使用事件日志服务。
  • EventLogPath 指定日志输出的起始目录。

EventLog 键包含子键 Formatters 和 Outputters,其下各值指定的 eventlog.dll 是系统默认的 formatter and outputter extensions,其源代码可在 $(_WINCEROOT)/PUBLIC/COMMON/OAK/UTILS/EVENTLOG 目录下找到。

formatter and outputter extensions 是指供事件日志服务调用,用以格式化文本并输出到特定设备的动态链接库。程序员通过导出 RegisterFormatExtension、RegisterOutputExtension 和 DoesOutputTypeSupportFormatType 等函数来自定义日志格式和输出目标。

除了 Formatter 和 Outputter 子键,EventLog 键包含的子键都叫做日志。如:
HKEY_LOCAL_MACHINE
    SYSTEM
        CurrentControlSet
            EventLog
                System            系统日志
                Application      应用程序日志

每个日志可以包含如下值:

  • Format 指定以何种格式格式化日志。
  • Output 指定以何种方式输出日志。
  • File 指定输出文件的路径 (仅 "Output"="File")。
  • MaxSize 指定输出文件的最大长度,缺省为 32 KB (仅 "Output"="File")。

日志包含的子键叫做事件源,事件源一般是记录事件的应用程序名称或模块名称。Windows CE 的事件源只支持如下值:

  • TypesSupported 指定支持类型的掩码。
  • CategoryMessageFile 指定分类消息文件的路径。
  • EventMessageFile 指定事件消息文件的路径。

事件消息文件是一个含有消息表的动态链接库,其创建步骤可以参考 Using MC.exe, message resources and the NT event log in your own projects 。

原创粉丝点击