Back to Iron

README

logger/README.md

0.6.12.7 KB
Original Source

logger

Morgan-inspired logging middleware for the Iron web framework.

Example

rust
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 the default format or a custom format string.

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

Installation

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

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 a log collecting service. This is not the 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, to more configurable ones like simplelog, to ultimate solutions like slog. You can find more on crates.io.

If you are looking for a turn-key solution, just follow the example in 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.