wasmcloud-actor-logging

Crates.iowasmcloud-actor-logging
lib.rswasmcloud-actor-logging
version0.1.2
sourcesrc
created_at2021-02-10 16:01:47.230556
updated_at2021-04-16 15:54:20.222393
descriptionInterface to the logging contract for use by wasmCloud Actors
homepage
repository
max_upload_size
id353269
size12,055
wasmCloud Automation Bot (wasmcloud-automation)

documentation

https://docs.rs/wasmcloud-actor-logging

README

crates.io  Rust license  documentation

wasmCloud Logging Actor Interface

This crate provides an abstraction over the wasmcloud:logging contract. This allows actors to use normal log macros (like info!, warn!, error!, etc) to write logs from within the actor.

Example:

extern crate wasmcloud_actor_http_server as http;
extern crate wasmcloud_actor_logging as logging;
extern crate wasmcloud_actor_core as actor;
use wapc_guest::HandlerResult;
use http::{Request, Response, Handlers};
use log::{info, warn, error, trace, debug};

#[actor::init]
pub fn init() {
    http::Handlers::register_handle_request(method_logger);
    /// Initialize the logger to enable log macros
    logging::enable_macros();
}

/// Actor must be signed with `wasmcloud:logging` to log messages
fn method_logger(msg: http::Request) -> HandlerResult<http::Response> {
    /// Logs can be directly written via `write_log`
    logging::default().write_log("", "trace", "Coercing Rust String to str");
    
    /// After initialization, logs can be directly written from the actor using macros
    match &*msg.method {
        "GET" => info!("Received a GET request"),
        "POST" => info!("Received a POST request"),
        "PUT" => info!("Received a PUT request"),
        "DELETE" => warn!("Received a DELETE request"),
        req => error!("Received an unsupported HTTP Request: {}", req),
    };
    debug!("Finished matching HTTP method, returning OK");
    Ok(http::Response::ok())
}
Commit count: 0

cargo fmt