#event-log #tracing-layer #tracing-subscriber #windows #tracing #layer

tracing-layer-win-eventlog

用于将tracing_subscriber写入Windows EventLog的层

4个版本

0.1.3 2024年7月17日
0.1.2 2024年7月17日
0.1.1 2024年7月17日
0.1.0 2024年7月17日

#60Windows API

Download history 222/week @ 2024-07-12 49/week @ 2024-07-19 4/week @ 2024-07-26

每月下载 275

MIT 协议

10KB
183 代码行

tracing-layer-win-eventlog

用于将tracing_subscriber写入Windows EventLog的层

使用方法

如果Windows EventLog尚未存在,则必须先创建。

# PowerShell v5.1 running as Administrator
New-EventLog -LogName Application -Source hello_world

use tracing_subscriber::{layer::SubscriberExt as _, util::SubscriberInitExt as _};

fn main() {
    println!("Hello, world!");

    let eventlog = tracing_layer_win_eventlog::EventLogLayer::new("hello_world".to_owned());

    tracing_subscriber::registry()
        .with(eventlog)
        .init();

    tracing::info!(id = 40, "hello world!");
}

id是可选的,用作Windows EventID,必须是unsigned。如果没有提供id,则使用tracing::Level作为EventID。

父级跨度列表位于source键中的消息上方。如果有多个父级跨度,它们将使用/分隔符连接。

所有其他传递的对象都以下面消息中的key: value对的形式写入。

示例

#[tracing::instrument]
fn windows() {
    let path = "C:\\Windows";
    tracing::debug!(id=2,?path,"currently in windir");
}

上述示例将按以下方式写入EventLog

ID: 2

source: windows
message: currently in windir
path: "\"C:\\Windows\""

依赖关系

~1.2–1.7MB
~24K SLoC