NAME

PAUSEx::Log - Access the PAUSE log

SYNOPSIS

use v5.36;
use PAUSEx::Log;

my $start = time;

FETCH: while( 1 ) {
	last if time - $start > 10 * 60;

	my $entries = PAUSEx::Log->fetch_log();

	MESSAGE: foreach my $entry ( $entries->@* ) {
		next unless $entry->is_for_pauseid( 'BDFOY' );
		say $entry->message;
		last FETCH if ...
		}

	sleep 5*60;
	}

DESCRIPTION

The Perl Authors Upload Server provides a tail of its log file so module authors can check the progress of their modules through the PAUSE process. This might take several minutes from the time of upload, and I want to monitor the log until I know my latest release has been seen by PAUSE.

This module fetches that log and digests it in various ways.

Class methods

fetch_log( PAUSE_USER, PAUSE_PASS )

Fetch the PAUSE log, using your PAUSE ID and password. You can also set these in the CPAN_PASS and CPAN_PASS environment variables, which this function will automatically pick up.

Instance methods

can( METHOD )

Returns true if the message contains that information since different types of message have different things they record. For example, not all messages contain the PAUSE ID

if( $entry->can('pause_id') ) { ... }
date

(Common) The date of the log line, in YYYY-MM-DD

distname

The distribution name (Foo-Bar-1.23.tgz), if the message refers to one.

for_pause_id( PAUSE_ID )

Returns true if the log message is about PAUSE_ID.

foreach my $entry ( fetch()->@* ) {
	next unless $entry->for_pause_id( 'BDFOY' );
	...
	}
id

(Common) A made up unique ID for the log message so you can tell if you've seen that log line before.

level

(Common) The log level

message

(Common) The log message

pause_id

The PAUSE ID of the message, if the message refers to one

time

(Common) The time of the log entry

type

(Common) The type of message

TO DO

SEE ALSO

SOURCE AVAILABILITY

This source is in Github:

http://github.com/briandfoy/pausex-log

AUTHOR

brian d foy, <brian d foy>

COPYRIGHT AND LICENSE

Copyright © 2023-2025, brian d foy, All Rights Reserved.

You may redistribute this under the terms of the Artistic License 2.0.