phpman > perldoc > Log::Any::Test(3pm)

Markdown | JSON | MCP    

NAME
    Log::Any::Test - Test what you're logging with Log::Any

VERSION
    version 1.710

SYNOPSIS
        use Test::More;
        use Log::Any::Test;    # should appear before 'use Log::Any'!
        use Log::Any qw($log);

        # ...
        # call something that logs using Log::Any
        # ...

        # now test to make sure you logged the right things

        $log->contains_ok(qr/good log message/, "good message was logged");
        $log->does_not_contain_ok(qr/unexpected log message/, "unexpected message was not logged");
        $log->empty_ok("no more logs");

        # or

        my $msgs = $log->msgs;
        cmp_deeply($msgs, [{message => 'msg1', level => 'debug'}, ...]);

DESCRIPTION
    "Log::Any::Test" is a simple module that allows you to test what has been logged with Log::Any.
    Most of its API and implementation have been taken from Log::Any::Dispatch.

    Using "Log::Any::Test" signals "Log::Any" to send all subsequent log messages to a single global
    in-memory buffer and to make the log proxy provide a number of testing functions. To use it,
    load "Log::Any::Test" before anything that loads "Log::Any". To actually use the test methods,
    you need to load "Log::Any" and get a log object from it, as shown in the "SYNOPSIS".

METHODS
    The test_name is optional in the *_ok methods; a reasonable default will be provided.

    msgs ()
        Returns the current contents of the global log buffer as an array reference, where each
        element is a hash containing a *category*, *level*, and *message* key. e.g.

          {
            category => 'Foo',
            level => 'error',
            message => 'this is an error'
          },
          {
            category => 'Bar::Baz',
            level => 'debug',
            message => 'this is a debug'
          }

    contains_ok ($regex[, $test_name])
        Tests that a message in the log buffer matches *$regex*. On success, the message is
        *removed* from the log buffer (but any other matches are left untouched).

    does_not_contain_ok ($regex[, $test_name])
        Tests that no message in the log buffer matches *$regex*.

    category_contains_ok ($category, $regex[, $test_name])
        Tests that a message in the log buffer from a specific category matches *$regex*. On
        success, the message is *removed* from the log buffer (but any other matches are left
        untouched).

    category_does_not_contain_ok ($category, $regex[, $test_name])
        Tests that no message from a specific category in the log buffer matches *$regex*.

    empty_ok ([$test_name])
        Tests that there is no log buffer left. On failure, the log buffer is cleared to limit
        further cascading failures.

    contains_only_ok ($regex[, $test_name])
        Tests that there is a single message in the log buffer and it matches *$regex*. On success,
        the message is removed.

    clear ()
        Clears the log buffer.

SEE ALSO
    Log::Any, Test::Log::Dispatch

AUTHORS
    *   Jonathan Swartz <swartz AT pobox.com>

    *   David Golden <dagolden AT cpan.org>

    *   Doug Bell <preaction AT cpan.org>

    *   Daniel Pittman <daniel AT rimspace.net>

    *   Stephen Thirlwall <sdt AT cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2017 by Jonathan Swartz, David Golden, and Doug Bell.

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

Log::Any::Test(3pm)
NAME VERSION SYNOPSIS DESCRIPTION METHODS SEE ALSO AUTHORS COPYRIGHT AND LICENSE

Generated by phpman v3.7.12 Author: Che Dong Under GNU General Public License
2026-06-13 17:59 @216.73.216.109
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top