#!/usr/bin/perl # $Id: log.pm,v 1.1 2011/06/03 09:28:47 yason Exp $ package log; my $DEBUG = 1; my $MAIN_LOG = "/var/log/ztransfer/main.log"; my $ERROR_LOG = "/var/log/ztransfer/error.log"; my $ZAYAVKI_LOG = "/var/log/ztransfer/zayavki.log"; my $JPEGS_LOG = "/var/log/ztransfer/jpegs.log"; my $PROBAS_LOG = "/var/log/ztransfer/probas.log"; my $TPPS_LOG = "/var/log/ztransfer/tpps.log"; my $CRITICAL_LOG = "/var/log/ztransfer/critical.log"; my $FILE_LIST = "/var/log/ztransfer/FILES"; my $DIFFS_FILE = "/var/log/ztransfer/size_diffs.log"; my $CURRENT_FILE = "/var/log/ztransfer/FILE"; my $CURRENT_ACTION = "/var/log/ztransfer/ACTION"; # functions sub error($) { open(FILE, ">>$ERROR_LOG") or return(); $_ = shift(); print FILE scalar( localtime() ) . "| $_\n"; print STDOUT scalar( localtime() ) . "| $_\n" if($DEBUG); close(FILE); } sub main($) { open(FILE, ">>$MAIN_LOG") or return(); $_ = shift(); print FILE scalar( localtime() ) . "| $_\n"; print STDOUT scalar( localtime() ) . "| $_\n" if($DEBUG); close(FILE); } sub zayavki($) { open(FILE, ">>$ZAYAVKI_LOG") or return(); $_ = shift(); print FILE scalar( localtime() ) . "| $_\n"; print STDOUT scalar( localtime() ) . "| $_\n" if($DEBUG); close(FILE); } sub jpegs($) { open(FILE, ">>$JPEGS_LOG") or return(); $_ = shift(); print FILE scalar( localtime() ) . "| $_\n"; print STDOUT scalar( localtime() ) . "| $_\n" if($DEBUG); close(FILE); } sub tpps($) { open(FILE, ">>$TPPS_LOG") or return(); $_ = shift(); print FILE scalar( localtime() ) . "| $_\n"; print STDOUT scalar( localtime() ) . "| $_\n" if($DEBUG); close(FILE); } sub probas($) { open(FILE, ">>$PROBAS_LOG") or return(); $_ = shift(); print FILE scalar( localtime() ) . "| $_\n"; print STDOUT scalar( localtime() ) . "| $_\n" if($DEBUG); close(FILE); } sub critical($) { if( open(FILE, ">>$CRITICAL_LOG") ) { $_ = shift(); print FILE scalar( localtime() ) . "| $_\n"; close(FILE); print STDOUT scalar( localtime() ) . "| $_\n" if($DEBUG); } exit(-1); # exit program with -1 on *critical* error } sub filelist($) { my $files_ref = shift; my @files = @$files_ref; open(FILE, ">$FILE_LIST") or return(); foreach $_ (@files) { print FILE "$_\n"; } close(FILE); } sub diff($$$) { my $path = shift; my $size_orig = shift; my $size_arc = shift; my $diff = $size_orig / $size_arc; # in human-readable format # we don't suppose gigabyte archives $size_orig = ($size_orig > 1048576 ? int($size_orig / 1024 / 1024) . " MB" : int($size_orig / 1024) . " KB"); $size_arc = ($size_arc > 1048576 ? int($size_arc / 1024 / 1024) . " MB" : int($size_arc / 1024) . " KB"); open(FILE, ">>$DIFFS_FILE") or return(); print FILE scalar( localtime() ) . "| $path - original=$size_orig, compressed=$size_arc [diff=$diff]\n"; print STDOUT scalar( localtime() ) . "| $path - original=$size_orig, compressed=$size_arc [diff=$diff]\n" if($DEBUG); close(FILE); } sub file_work_on($$) { my $file = shift; my $action = shift; open(FILE, ">$CURRENT_FILE") or return(); print FILE $file; close(FILE); open(ACT, ">$CURRENT_ACTION") or return(); print ACT $action; close(ACT); } sub file_work_done() { # consider this stuff okay, as usually ;-) # but in future maybe not to call anything external? system("/bin/rm $CURRENT_FILE") if(-e $CURRENT_FILE); system("/bin/rm $CURRENT_ACTION") if(-e $CURRENT_ACTION); } sub stdout($) { my $message = shift; print "STDOUT: $message\n"; } return(1);