NAME
    Log::ger::App - An easy way to use Log::ger in applications

VERSION
    version 0.008

SYNOPSIS
    In your script:

     use Log::ger::App;
     use Your::App::Module; # your module which uses Log::ger to do its logging

    If you also do logging in your script:

     use Log::ger::App;
     use Log::ger;

     log_warn("Some log ...");

DESCRIPTION
    This module basically loads Log::ger::Output::Composite with some
    sensible defaults and allows customizing some aspects via environment
    variable.

  Default outputs
     Code                            Screen  File                   Syslog
     ------------------------------  ------  ----                   ------
     One-liner (-e)                  y       -                      -
     Script running as normal user   y       ~/PROGNAME.log         -
     Script running as root          y       /var/log/PROGNAME.log  -
     Daemon                          -       /var/log/PROGNAME.log  y

  Determining if script is a daemon
    Log::ger::App assumes your script is a daemon if some daemon-related
    modules are loaded, e.g. App::Daemon, HTTP::Daemon, Net::Daemon, etc
    (see the source code for the complete list). Alternatively, you can also
    set $main::IS_DAEMON to 1 (0) to specifically state that your script is
    (not) a daemon. Or, you can set it via import argument (see "import").

  Setting general log level
    The default is "warn" (like Log::ger's default).

    Via import argument. You can set general log level via import argument
    (see "import") but users of your script will not be able to customize
    it.

    Via environment variables. You can also set general log level from
    environment using "LOG_LEVEL" (e.g. "LOG_LEVEL=trace" to set level to
    trace or "LOG_LEVEL=0" to turn off logging). Alternatively, you can set
    to "trace" using "TRACE=1", or "debug" with "DEBUG=1", "info" with
    "VERBOSE=1", "error" with "QUIET=1".

  Setting per-output log level
    The default is to use general level, but you can set a different level
    for each output using
    *OUTPUT_NAME*_{"LOG_LEVEL|TRACE|DEBUG|VERBOSE|QUIET"} environment
    variables. For example, "SCREEN_DEBUG=1" to set screen level to "debug"
    or "FILE_LOG_LEVEL=off" to turn off file logging.

  Showing timestamp
    Timestamps are shown in log files. On the screen, timestamps are not
    shown by default. To show timestamps on the screen, set
    "LOG_ADD_TIMESTAMP" to true. For example, when timestamps are not shown:

     myprog: First log message
     myprog: Doing task 1 ...
     myprog: Doing task 2 ...

    When timestamps are shown:

     myprog: [2018-08-30T15:14:50] First log message
     myprog: [2018-08-30T15:14:50] Doing task 1 ...
     myprog: [2018-08-30T15:15:01] Doing task 2 ...

FUNCTIONS
  import
    Usage:

     $pkg->import(%args)

    Arguments:

    *   level => str|num

        Explicitly set level. Otherwise, the default will be taken from
        environment variable like described previously in "DESCRIPTION".

    *   name => str

        Explicitly set program name. Otherwise, default will be taken from
        $0 (after path and '.pl' suffix is removed) or set to "prog".

        Program name will be shown on the screen, e.g.:

         myprog: First log message
         myprog: Doing task 1 ...
         myprog: Doing task 2 ...
         myprog: Exiting ...

    *   daemon => bool

        Explicitly tell Log::ger::App that your application is a daemon or
        not. Otherwise, Log::ger::App will try some heuristics to guess
        whether your application is a daemon: from the value of
        $main::IS_DAEMON and from the presence of modules like HTTP::Daemon,
        Proc::Daemon, etc.

    *   outputs => hash

        Specify extra outputs. Will be passed to Log::ger::Output::Composite
        configuration.

ENVIRONMENT
  LOG_ADD_TIMESTAMP
    Boolean. Default to false. If set to true, will add timestamps to the
    screen log. Normally, timestamps will only be added to the file log.

  LOG_LEVEL
    String. Can be set to "off" or numeric/string log level.

  TRACE
    Bool.

  DEBUG
    Bool.

  VERBOSE
    Bool.

  QUIET
    Bool.

  SCREEN_LOG_LEVEL
  SCREEN_TRACE
  SCREEN_DEBUG
  SCREEN_VERBOSE
  SCREEN_QUIET
  FILE_LOG_LEVEL
  FILE_TRACE
  FILE_DEBUG
  FILE_VERBOSE
  FILE_QUIET
  SYSLOG_LOG_LEVEL
  SYSLOG_TRACE
  SYSLOG_DEBUG
  SYSLOG_VERBOSE
  SYSLOG_QUIET
SEE ALSO
    Log::ger

AUTHOR
    perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2018, 2017 by 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.

