[][src]Function rouille::log_custom

pub fn log_custom<L, E, F>(
    req: &Request,
    log_ok_f: L,
    log_err_f: E,
    handler: F
) -> Response where
    L: Fn(&Request, &Response, Duration),
    E: Fn(&Request, Duration),
    F: FnOnce() -> Response

Calls custom logging functions after processing a request.

This is nearly identical to the rouille::log function except it takes two logging functions that will be called with access to the request/response structs and the total execution duration of the handler.


#[macro_use] extern crate log;
extern crate chrono;
use rouille::{Request, Response};

fn handle(request: &Request) -> Response {
    let now = chrono::Utc::now().format("%Y-%m-%d %H:%M:%S%.6f");
    let log_ok = |req: &Request, resp: &Response, _elap: std::time::Duration| {
        info!("{} {} {}", now, req.method(), req.raw_url());
    let log_err = |req: &Request, _elap: std::time::Duration| {
        error!("{} Handler panicked: {} {}", now, req.method(), req.raw_url());
    rouille::log_custom(request, log_ok, log_err, || {
        Response::text("hello world")