Crate flexi_logger [] [src]

A logger that can write the log to standard error or to a fresh file in a configurable folder and allows custom logline formats. It had started as an extended copy of env_logger.

Usage

This crate is on crates.io and can be used by adding flexi_logger to the dependencies in your project's Cargo.toml.

[dependencies]
flexi_logger = "0.5"
log = "*"

and this to your crate root:

extern crate flexi_logger;
#[macro_use]
extern crate log;

The latter is needed because flexi_logger plugs into the standard Rust logging facade given by the log crate, and you use the log macros to write log lines from your code.

In flexi_logger's initialization, you can e.g.

  • decide whether you want to write your logs to stderr (like with env_logger), or to a file,
  • configure the folder in which the log files are created,
  • provide the log-level-specification, i.e., the decision which log lines really should be written out, programmatically (if you don't want to use the environment variable RUST_LOG)
  • specify the line format for the log lines

See function init and structure LogConfig for a full description of all configuration options.

Structs

FlexiLogger

Does the logging. Is only made public to support usecases where more than one FlexiLogger instance are required in a single process.

FlexiLoggerError

Describes errors in the initialization of flexi_logger.

LogConfig

Allows influencing the behavior of flexi_logger.

LogRecord

The "payload" of a log message.

Enums

LogLevel

An enum representing the available verbosity levels of the logging framework

LogLevelFilter

An enum representing the available verbosity level filters of the logging framework.

Functions

default_format

A logline-formatter that produces lines like
INFO [my_prog::some_submodule] Task successfully read from conf.json

detailed_format

A logline-formatter that produces lines like
[2016-01-13 15:25:01.640870 +01:00] INFO [foo::bar] src/foo/bar.rs:26: Task successfully read from conf.json

init

Initializes the flexi_logger to your needs, and the global logger with flexi_logger.

opt_format

A logline-formatter that produces lines like
[2016-01-13 15:25:01.640870 +01:00] INFO [src/foo/bar:26] Task successfully read from conf.json