Skip to main content

Crate flexi_logger

Crate flexi_logger 

Source
Expand description

A flexible and easy-to-use logger that writes logs to stderr and/or to files or other output streams.

To read the log specification from an environment variable and get the log written to stderr, start flexi_logger e.g. like this:

flexi_logger::Logger::try_with_env().unwrap().start().unwrap();

See

  • The builder Logger for a full description of all configuration options,
  • module code_examples for various concrete examples of flexi_logger initialization
  • the module writers for the usage of additional log writers,
  • and the README for how to get started.

There are configuration options to e.g.

  • decide whether you want to write your logs to stderr or to a file,
  • configure the path and the filenames of the log files,
  • use file rotation,
  • specify the line format for the log lines,
  • apply a stateful filter before log lines are really written,
  • define additional log output streams, e.g for alert or security messages,
  • support changing the log specification while the program is running,

flexi_logger uses a similar syntax as env_logger for specifying which logs should really be written (but is more graceful with the syntax, and can provide error information).

By default, i.e. if feature colors is not switched off, the log lines that appear on your terminal are coloured. In case the chosen colors don’t fit to your terminal’s color theme, you can adapt the colors to improve readability. See the documentation of method Logger::set_palette for a description how this can be done.

Modules§

code_examples
Here are some examples for the flexi_logger initialization.
error_info
Error codes of flexi_logger.
filter
This module contains two traits which allow adding a stateful filter using Logger::filter.
writers
Contains the trait LogWriter for extending flexi_logger with additional log writers, and two concrete implementations for writing to files (FileLogWriter) or to the syslog ([SyslogWriter]). You can also use your own implementations of LogWriter.

Structs§

DeferredNow
Deferred timestamp creation.
FileSpec
Builder object for specifying the name and path of the log output file.
LogSpecBuilder
Builder for LogSpecification.
LogSpecification
Immutable struct that defines which loglines are to be written, based on the module, the log level, and the text.
Logger
The entry-point for using flexi_logger.
LoggerHandle
Shuts down the logger when dropped, and allows reconfiguring the logger programmatically.
ModuleFilter
Defines which loglevel filter to use for the specified module.
Record
The “payload” of a log message.

Enums§

AdaptiveFormat
Can be used in Logger::adaptive_format_for_stderr and Logger::adaptive_format_for_stdout to use coloring only if the output goes to a tty.
Age
The age after which a log file rotation will be triggered, when Criterion::Age is chosen.
Cleanup
Defines the strategy for handling older log files.
Criterion
Criterion when to rotate the log file.
Duplicate
Used to control which messages are to be duplicated to stderr, when log_to_file() is used.
ErrorChannel
Enum for defining the output channel for flexi_logger’s own error messages.
FlexiLoggerError
Describes errors in the initialization of flexi_logger.
Level
An enum representing the available verbosity levels of the logger.
LevelFilter
An enum representing the available verbosity level filters of the logger.
Naming
The naming convention for rotated log files.
WriteMode
Describes whether the log output should be written synchronously or asynchronously, and if and how I/O should be buffered and flushed.

Constants§

DEFAULT_BUFFER_CAPACITY
Default buffer capacity (8k), when buffering is used.
DEFAULT_FLUSH_INTERVAL
Default flush interval (1s), when flushing is used.
TS_DASHES_BLANK_COLONS_DOT_BLANK
Precompiled version of the time stamp format that is used by the provided format functions.

Functions§

colored_default_format
A colored version of the logline-formatter default_format that produces log lines like
ERROR [my_prog::some_submodule] File not found
colored_detailed_format
A colored version of the logline-formatter detailed_format.
colored_opt_format
A colored version of the logline-formatter opt_format.
colored_with_thread
A colored version of the logline-formatter with_thread.
default_format
A logline-formatter that produces log lines like
INFO [my_prog::some_submodule] Task successfully read from conf.json
detailed_format
A logline-formatter that produces log 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
i.e. with timestamp, module path and file location.
opt_format
A logline-formatter that produces log lines with timestamp and file location, like
[2016-01-13 15:25:01.640870 +01:00] INFO [src/foo/bar:26] Task successfully read from conf.json
style
Helper function that is used in the provided coloring format functions to apply colors based on the log level and the effective color palette.
with_thread
A logline-formatter that produces log lines like
[2016-01-13 15:25:01.640870 +01:00] T[taskreader] INFO [src/foo/bar:26] Task successfully read from conf.json
i.e. with timestamp, thread name and file location.

Type Aliases§

FormatFunction
Function type for format functions.