# minimalism
## no critic: TestingAndDebugging::RequireUseStrict
package Log::ger::Level::FromEnv;

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2022-02-18'; # DATE
our $DIST = 'Log-ger-Level-FromEnv'; # DIST
our $VERSION = '0.005'; # VERSION

use Log::ger::Util;

if (defined($ll = $ENV{LOG_LEVEL})) {
    Log::ger::Util::set_level($ll);
} elsif ($ENV{TRACE}) {
    Log::ger::Util::set_level("trace");
} elsif ($ENV{DEBUG}) {
    Log::ger::Util::set_level("debug");
} elsif ($ENV{VERBOSE}) {
    Log::ger::Util::set_level("info");
} elsif ($ENV{QUIET}) {
    Log::ger::Util::set_level("error");
}

1;
# ABSTRACT: Set default log level from some environment variables

__END__

=pod

=encoding UTF-8

=head1 NAME

Log::ger::Level::FromEnv - Set default log level from some environment variables

=head1 VERSION

version 0.005

=head1 SYNOPSIS

 use Log::ger;
 use Log::ger::Level::FromEnv;

 log_warn "blah ...";

=head1 DESCRIPTION

This module sets C<$Log::ger::Current_Level> based on hints from several
environment variables: C<LOG_LEVEL> (for example, if set to C<warn> or
C<warning> will set the log level to warning (30)), C<TRACE> (if true, will set
log level to trace (60)), C<DEBUG> (if true, will set log level to debug (50)),
C<VERBOSE> (if true, will set log level to info (40)), C<QUIET> (if true, will
set log level to error (20)).

This is convenient for CLI programs or one-liners.

=head1 SEE ALSO

L<Log::ger::App> also observes the same set of environment variables.

L<Log::ger::Screen> uses us.

L<Log::ger::Level::FromVar>

=head1 AUTHOR

perlancar <perlancar@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2022, 2020, 2018, 2017 by perlancar <perlancar@cpan.org>.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
