Andrew Johnson > HeliosX-Logger-HiRes-0.01_0821 > HeliosX::Logger::HiRes

Download:
HeliosX-Logger-HiRes-0.01_0821.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.01_0821   Source  

NAME ^

HeliosX::Logger::HiRes - HeliosX::Logger subclass providing high resolution logging for Helios

SYNOPSIS ^

 #in your service class
 package MyService;
 use base qw(HeliosX::ExtLoggerService);
 
 # in helios.ini, disable internal logging 
 # and enable HeliosX::Logger::HiRes
 internal_logger=off
 loggers=HeliosX::Logger::HiRes

DESCRIPTION ^

Unlike some other HeliosX::Logger subclasses, HeliosX::Logger::HiRes intends not to link Helios with external logging systems, but to enhance Helios's own internal logging system by providing much more precise timestamping of log messages via the Time::HiRes module.

The Helios base system's logging subsystem only has resolution to a second, which keeps it consistent with the underlying TheSchwartz queueing system. But if your collective runs many short-lived (sub-second runtime) jobs, the ordering of log messages can easily get confused, with some log entries appearing after other messages that clearly came before. In order prevent this, HeliosX::Logger::HiRes uses the Perl Time::HiRes module to capture a much more precise measure of an entry's log time, and stores that time in a slightly modified Helios database schema that can handle the subsecond precision of the new time.

HELIOS DATABASE SCHEMA CHANGES ^

In order to handle the more precise timing information, HeliosX::Logger::HiRes requires minor changes to the Helios database schema. These changes will not alter the functionality of Helios::Panoptes or other utilities or Helios services not utilizing HeliosX::Logger::HiRes. To alter the database schema, connect to your MySQL Helios database and execute the commands in the sql/helios_hires.sql file. This will only affect the HELIOS_LOG_TB. Job history (HELIOS_JOB_HISTORY_TB) and service uptime monitoring (HELIOS_WORKER_REGISTRY_TB) will be unaffected.

IMPLEMENTED METHODS ^

init()

...is empty.

logMsg($job, $level, $msg)

This method effectively does the same thing as the original Helios logging code, but makes sure the log times recorded are subsecond times.

OTHER METHODS ^

getDriver()

Returns a Data::ObjectDriver object that can be used to write to the HELIOS_LOG_TB in the Helios database.

SEE ALSO ^

HeliosX::ExtLoggerService, HeliosX::Logger, Time::HiRes

AUTHOR ^

Andrew Johnson, <lajandy at cpan dotorg>

COPYRIGHT AND LICENSE ^

Copyright (C) 2009 by Andrew Johnson

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.0 or, at your option, any later version of Perl 5 you may have available.