# NAME Mojo::Log::Colored - Colored Mojo logging
# SYNOPSIS use Mojo::Log::Colored; # Log to STDERR $app->log( Mojo::Log::Colored->new( # optionally set the colors colors => { debug => "bold bright_white", info => "bold bright_blue", warn => "bold green", error => "bold yellow", fatal => "bold yellow on_red", } ) ); # DESCRIPTION Mojo::Log::Colored is a logger for Mojolicious with colored output for the terminal. It lets you define colors for each log level based on [Term::ANSIColor](https://metacpan.org/pod/Term::ANSIColor) and comes with sensible default colors. The full lines in the log will be colored. Since this inherits from [Mojo::Log](https://metacpan.org/pod/Mojo::Log) you can still give it a `file`, but the output would also be colored. That does not make a lot of sense, so you don't want to do that. Use this for development, not production. # ATTRIBUTES [Mojo::Log::Colored](https://metacpan.org/pod/Mojo::Log::Colored) implements the following attributes. ## colors my $colors = $log->colors; $log->colors( { debug => "bold bright_white", info => "bold bright_blue", warn => "bold green", error => "bold yellow", fatal => "bold yellow on_red", } ); Takes a hash reference with the five log levels as keys and strings of colors as values. Refer to [Term::ANSIColor](https://metacpan.org/pod/Term::ANSIColor) for more information about what kind of color you can use. You can turn off coloring for specific levels by omitting them from the config hash. $log->colors( { fatal => "bold green on_red", } ); The above will only color fatal messages. All other levels will be in your default terminal color. ## format my $cb = $log->format; $log = $log->format( sub { ... } ); A callback for formatting log messages. Cannot be passed to `new` at construction! See [Mojo::Log](https://metacpan.org/pod/Mojo::Log) for more information. # METHODS [Mojo::Log::Colored](https://metacpan.org/pod/Mojo::Log::Colored) inherits all methods from [Mojo::Log](https://metacpan.org/pod/Mojo::Log) and does not implement new ones. # BREAKING CHANGES Mojolicious changed the way multi-line log messages are emitted [in version 9](https://mojolicious.io/blog/2021/02/14/announcing-mojolicious-9-0/). This logger honours this default format. # SEE ALSO [Mojo::Log](https://metacpan.org/pod/Mojo::Log), [Term::ANSIColor](https://metacpan.org/pod/Term::ANSIColor) # ACKNOWLEDGEMENTS This plugin was inspired by lanti asking about a way to find specific errors more easily in the Mojo log during unit test runs on [Stack Overflow](https://stackoverflow.com/q/44965998/1331451). # LICENSE Copyright (C) simbabque. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. # AUTHOR simbabque