Morgan-inspired request logger middleware for Iron
Switch branches/tags
Nothing to show
Clone or download
Latest commit 59873ba Dec 9, 2017

README.md

logger Build Status

Morgan-inspired logging middleware for the Iron web framework.

Example

extern crate iron;
extern crate logger;

use iron::prelude::*;
use logger::Logger;

fn main() {
    let (logger_before, logger_after) = Logger::new(None);

    let mut chain = Chain::new(no_op_handler);

    // Link logger_before as your first before middleware.
    chain.link_before(logger_before);

    // Link logger_after as your *last* after middleware.
    chain.link_after(logger_after);

    Iron::new(chain).http("127.0.0.1:3000").unwrap();
}

fn no_op_handler(_: &mut Request) -> IronResult<Response> {
    Ok(Response::with(iron::status::Ok))
}

Overview

Logger is a part of Iron's core bundle.

Logger emits request and response information using standard rust log facade, formatted with default format or a custom format string.

Format strings can specify fields to be logged (ANSI terminal colors and attributes is no longer supported since #82).

Installation

If you're using a Cargo.toml to manage dependencies, just add logger to the toml:

[dependencies.logger]

git = "https://github.com/iron/logger.git"

Otherwise, cargo build, and the rlib will be in your target directory.

Documentation

Along with the online documentation, you can build a local copy with make doc.

Examples

Log implementations

To actually log anything, you will need to use some log implementation that will deliver the logs to your desired location, like standard error output, a file or log collecting service. This is not responsibility of iron-logger alone. There are numerous such implementations to choose from, from simple ones that just write to standard error like env_logger, more configurable ones like simplelog to ultimate solutions like slog. You can find more on crates.io.

If you are looking for turn-key solution, just follow example from env_logger.

Get Help

One of us (@reem, @zzmp, @theptrk, @mcreinhard) is usually on #iron on the mozilla irc. Come say hi and ask any questions you might have. We are also usually on #rust and #rust-webdev.