The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::AnyXfer::Elastic::Logger

SYNOPSIS

    my $logger = Data::AnyXfer::Elastic::Logger->new(
        dir     => 'Str|Path::Class::Dir',    # optional
        options => {                          # optional
           screen       => {},
           file_rotate  => {},
        },
        screen  => 0,                         # false by default
        file    => 1,                         # true by default
    );


    # alias = employees
    my $datafile1 = Datafile->new( file => 'employees.datafile' );

    # by default will log to ../elasticsearch/logs/dd-mm-yyyy/employees
    $logger->debug(
        index_info => $datafile1,
        text       => 'Blah Blah Blah!',
        content    => \@errors
    );


    # alias = interiors
    my $datafile2 = Datafile->new( file => 'interiors.datafile' );

    # by default will log to ../elasticsearch/logs/dd-mm-yyyy/interiors
    $logger->critical(
        index_info => $datafile2,
        text => 'Oops! Something went wrong!',
        content => Search::Elasticsearch::Error::Request->new;
    );

DESCRIPTION

This module is based of Log::Dispatch to log Elasticsearch events and errors.

ATTRIBUTES

destination

Defines the directory location of logging. Defaults to CWD/logs/yyyy-mm-dd/alias_name.

file

Log to file. Defaults to true.

screen

Log to screen. Defaults to false.

options

These define the options for Log::Dispatch::Screen and Log::Dispatch::Screen please refer to their documentation. Note that for FileRotate the arguement filename will be overwritten.

Must be in the format:

    {
        screen => { Log::Dispatch::Screen options }
        file_rotate => { Log::Dispatch::FileRotate options }
    }

METHODS

Logging:

    my %args = ( index_info => $df, text => '', content => $struct );

    $logger->debug( %args );
    $logger->info( %args );
    $logger->notice( %args );
    $logger->warning( %args );
    $logger->error( %args );
    $logger->critical( %args );
    $logger->alert( %args );
    $logger->emergency( %args );

All logging methods have the arguements: index_info, text and content. Content can be either a perl data structure or a Search::Elasticsearch::Error::Request object.

COPYRIGHT

This software is copyright (c) 2019, Anthony Lucas.

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