SYNOPSIS

     use Log::ger::Output Composite => (
         outputs => {
             # single screen output
             Screen => {
                 level => 'info', # set per-output level. optional.
                 conf => { use_color=>1 },
             },
             # multiple file outputs
             File   => [
                 {
                     conf => { path=>'/var/log/myapp.log' },
                     level => 'warn',
                     # set per-category, per-output level. optional.
                     category_level => {
                         # don't log myapp.security messages to this file
                         'MyApp::Security' => 'off',
                     },
                 },
                 {
                     conf => { path => '/var/log/myapp-security.log' },
                     level => 'warn',
                     category_level => {
                         # only myapp.security messages go to this file
                         'MyApp::Security' => 'warn',
                     },
                 },
             ],
         },
         # set per-category level. optional.
         category_level => {
            'MyApp::SubModule1' => 'info',
            'MyApp::SubModule2' => 'debug',
            ...
         },
     );
     use Log::ger;
    
     log_warn "blah...";

DESCRIPTION

    This is a Log::ger output that can multiplex output to several outputs
    and do filtering on the basis of per-category level, per-output level,
    or per-output per-category level.

CONFIGURATION

 outputs => hash

    Specify outputs. It's a hash with output name as keys and output
    specification as values.

    Output name is the name of output module without the Log::ger::Output::
    prefix, e.g. Screen or File.

    Output specification is either a hashref or arrayref of hashrefs to
    specify multiple outputs per type (e.g. if you want to output to two
    File's). Known hashref keys:

      * conf => hashref

      Specify output configuration. See each output documentation for the
      list of available configuration parameters.

      * level => str|int|[min, max]

      Specify per-output level. If specified, logging will be done at this
      level instead of the general level. For example, if this is set to
      debug then debug messages and higher will be sent to output even
      though the general level is warn. Vice versa, if this is set to error
      then even though the general level is warn, warning messages won't be
      sent to this output; only error messages and higher will be sent.

      You can specify a single level (e.g. 1 or "trace") or a two-element
      array to specify minimum and maximum level (e.g. <["trace",
      "info"]>). If you accidentally mix up minimum and maximum, this
      module will helpfully fix it for you.

      * category_level => hash

      Specify per-output per-category level. Hash key is category name,
      value is level (which can be a string/numeric level or a two-element
      array containing minimum and maximum level).

 category_level => hash

    Specify per-category level. Hash key is category name, value is level
    (which can be a string/numeric level or a two-element array containing
    minimum and maximum level).

ENVIRONMENT

SEE ALSO

