package MySQL::Diff::Utils; =head1 NAME MySQL::Diff::Utils - Supporting functions for MySQL:Diff =head1 SYNOPSIS use MySQL::Diff::Utils qw(debug_level debug); =head1 DESCRIPTION Currently contains the debug message handling routines. =cut use warnings; use strict; our $VERSION = '0.43'; # ------------------------------------------------------------------------------ # Libraries use IO::File; # ------------------------------------------------------------------------------ # Export Components use base qw(Exporter); our @EXPORT_OK = qw(debug_file debug_level debug); # ------------------------------------------------------------------------------ =head1 FUNCTIONS =head2 Public Functions Fuller documentation will appear here in time :) =over 4 =item * debug_file( $file ) Accessor to set/get the current debug log file. =item * debug_level( $level ) Accessor to set/get the current debug level for messages. Current levels range from 1 to 4, with 1 being very brief processing messages, 2 providing high level process flow messages, 3 providing low level process flow messages and 4 providing data dumps, etc where appropriate. =item * debug Writes to debug log file (if specified) and STDERR the given message, provided is equal to or lower than the current debug level. =back =cut { my $debug_file; my $debug_level = 0; sub debug_file { my ($new_debug_file) = @_; $debug_file = $new_debug_file if defined $new_debug_file; return $debug_file; } sub debug_level { my ($new_debug_level) = @_; $debug_level = $new_debug_level if defined $new_debug_level; return $debug_level; } sub debug { my $level = shift; return unless($debug_level >= $level && @_); if($debug_file) { if(my $fh = IO::File->new($debug_file, 'a+')) { print $fh @_,"\n"; $fh->close; return; } } print STDERR @_,"\n"; } } 1; __END__ =head1 COPYRIGHT AND LICENSE Copyright (c) 2000-2011 Adam Spiers. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L, L, L, L =head1 AUTHOR Adam Spiers =cut