The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

HTTP::OAIPMH::Log - Log of validation results

SYNOPSIS

Validation logging for HTTP::OAIPMH::Validator. Stores log of information as an array of entries in $obj->log, where each entry is itself an array where the first element is the type (indicated by a string) and then additional information.

Also supports output of a text summary (markdown) and/or JSON data during operation if the $obj->filehandles array is set to include one or more filehandle and types for output.

Example use:

    my $log = HTTP::OAIPMH::Log->new;
    $log->fh(\*STDOUT);
    $log->start("First test");
    ...
    $log->note("Got some data");
    ...
    if ($good) {
        $log->pass("It was good, excellent");
    } else {
        $log->fail("Should have been good but wasn't");
    }

METHODS

new(%args)

Create new HTTP::OAIPMH::Log and optionally set values for any of the attributes. All attributes also have accessors provided via Class::Accessor::Fast:

  log - internal data structure for log messages (array of arrays)
  fh - set to a filehandle to write log messages as logging is done
  num_pass - number of pass messages
  num_fail - number of fail messages
  num_warn - number of warn messages

fh($fh, $type)

Add a filehandle to the logger. If $type is set equal to 'json' then JSON will be written, otherwise text output in markdown format. The call is ignore unless $fh is True.

num_total()

Return the total number of pass and fail events recorded. Note that this doesn't include warnings.

start($title)

Start a test or section and record a title.

request($url,$type,$content)

Add a note of the HTTP request used in this test. Must specify the $url, may include the $type (GET|POST) and for POST the $content.

note($note)

Add note of extra information that doesn't impact validity.

fail($msg,$longmsg)

Record a failure and increment the $obj->num_fail count. Must have a message $msg and may optionally include a longer explanation $longmsg.

warn($msg,$longmsg)

Record a warning and increment the $obj->num_warn count. Must have a message $msg and may optionally include a longer explanation $longmsg.

pass($msg,$longmsg)

Record a success and increment the $obj->num_pass count. Must have a message $msg explaining what has passed.