| Tivoli documentation | Contained in the Tivoli distribution. |
Tivoli::Logging - Perl Extension for Tivoli
use Tivoli::Logging;
v0.02
Copyright (c) 2001 Robert Hase. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
This Package will handle about everything you may need for Logging. If anything has been left out, please contact me at tivoli.rhase@muc-net.de so it can be added. Prints formated Logging-Informations to STDOUT and if wanted to one or more Files. Supports an unlimited Numbers of open Files (dynamical Filehandlers) and prints the Type of the STDOUT-Information in Color (requires ANSI). Should be the first loaded Tivoli-Package.
If Parameter L<File-Handler> = STDOUT the Logging-Message will only be sended to Standard-Out
ROUTINE TYPE FOREGROUND/BACKGROUND ----------------------------------------------------- LogInfo (Info) black/green LogWarn (Warning) black/yellow LogFail (Failed) black/red LogFat (Fatal) white/black
Prints Logging-Informations in the following Format: TYPE dd.mm.yyyy hh:mm:ss MSG
&LogInfo(STDOUT, "This is an Information-Message only to Standard-Out");
INFO 23.07.2001 This is an Information-Message only to Standard-Out
Prints Logging-Informations in the following Format: yyyy-mm-dd hh:mm:ss TYPE MSG
&LogInfo($G_LOGFILE1, "This is an Information-Message to Standard-Out AND Logfile $G_LOGFILE1");
STDOUT: INFO 23.07.2001 13:27:42 This is an Information-Message to Standard-Out AND Logfile $G_LOGFILE1 FILE : 2001-07-23 13:27:42 INFO This is an Information-Message to Standard-Out AND Logfile $G_LOGFILE1
Details to the Logging-Functionality
$FileHandle = &LogOpenNew(<PATH/FILENAME>);
- opens a new Log-File - prints L<INFO-Message> to Display and L<$FileHandle> - returns the File-Handler
$FileHandle = &LogOpenAppend(<PATH/FILENAME>);
- opens PATH/FILENAME for Append
- prints L<INFO-Message> to Display and $FileHandle
- returns the File-Handler
&LogInfo($FileHandle, <MSG>);
- prints INFO-Message to Display - prints INFO-Message to $FileHandle if $FileHandle not 0
&LogWarn($FileHandle, <MSG>);
- prints WARN-Message to Display
- prints WARN-Message to $FileHandle if $FileHandle not 0
&LogFail($FileHandle, <MSG>);
- prints FAILED-Message to Display
- prints FAILED-Message to $FileHandle if $FileHandle not 0
&LogFat($FileHandle, <MSG>);
- prints FATAL-Message to Display
- prints FATAL-Message to $FileHandle if $FileHandle not 0
&LogsClose;
- prints INFO-Message to Display
- prints INFO-Message to EVERY $FileHandle if exist
- close EVERY open (Logging-) File-Handler
Supported Plattforms and Requirements
tested on: - w32-ix86 (W9x, NT4, Windows 2000) - aix4-r1 (AIX 4.3) - Linux (Kernel 2.2.x)
requires Perl v5 or higher
VERSION DATE AUTHOR WORK ---------------------------------------------------- 0.01 2001-07-18 RHase created 0.02 2001-07-23 RHase POD-Doku added
Robert Hase ID : RHASE eMail : Tivoli.RHase@Muc-Net.de Web : http://www.Muc-Net.de
CPAN http://www.perl.com
| Tivoli documentation | Contained in the Tivoli distribution. |
package Tivoli::Logging; # RHase # www.Muc-Net.de # sys.m.TEC GmbH # www.sysmtec.de our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase); require Exporter; @ISA = qw(Exporter); @EXPORT = qw($G_LOGDO @G_FHs LogOpenNew LogOpenAppend LogInfo LogWarn LogFail LogFat LogsClose); $VERSION = '0.02'; ################################################################################################
############################################################################################### sub LogOpenNew { my($p_logfile) = $_[0]; my($l_random); chomp($l_date = `date +"%d.%m.%Y %H:%M"`); chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`); $l_random = 42; $l_random += int(rand($$*$l_random/2*5)) + $$; $l_random += int(rand($$*$l_random/2*5)) + $$; if(open($l_random, ">$p_logfile") == 0) { print "\e[30;41mFAILURE\e[0m $l_date Function LogOpenNew $p_logfile $!\n"; return(0); } print "\e[30;42m INFO \e[0m $l_date Function LogOpenNew $p_logfile open\n"; print $l_random "$l_datefile INFO Function LogOpenNew $p_logfile (FH $l_random) open\n"; push(@G_FHs, $l_random); return($l_random); } sub LogOpenAppend { my($p_logfile) = $_[0]; my($l_random, $l_date); chomp($l_date = `date +"%d.%m.%Y %H:%M"`); chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`); $l_random = 42; $l_random += int(rand($$*$l_random/2*5)) + $$; $l_random += int(rand($$*$l_random/2*5)) + $$; if(open($l_random, ">>$p_logfile") == 0) { print "\e[30;41mFAILURE\e[0m $l_date Function LogOpenAppend $p_logfile $!\n"; return(0); } print "\e[30;42m INFO \e[0m $l_date Function LogOpenAppend $p_logfile open\n"; print $l_random "$l_datefile INFO Function LogOpenAppend $p_logfile (FH $l_random) open\n"; push(@G_FHs, $l_random); return($l_random); } sub LogInfo { # \e[30;42m # BLACK/GREEN my($p_fh) = $_[0]; my($p_msg) = $_[1]; my($l_date); chomp($l_date = `date +"%d.%m.%Y %H:%M"`); chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`); print "\e[30;42m INFO \e[0m $l_date $p_msg\n"; if($p_fh !~ /STDOUT/) {print $p_fh "$l_datefile INFO $p_msg\n";} } sub LogWarn { # \e[30;43m # BLACK/YELLOW my($p_fh) = $_[0]; my($p_msg) = $_[1]; my($l_date); chomp($l_date = `date +"%d.%m.%Y %H:%M"`); chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`); print "\e[30;43mWARNING\e[0m $l_date $p_msg\n"; if($p_fh !~ /STDOUT/) {print $p_fh "$l_datefile WARNING $p_msg\n";} } sub LogFail { # \e[30;41mFAILURE # BLACK/RED my($p_fh) = $_[0]; my($p_msg) = $_[1]; my($l_date); chomp($l_date = `date +"%d.%m.%Y %H:%M"`); chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`); print "\e[30;41mFAILURE\e[0m $l_date $p_msg\n"; if($p_fh !~ /STDOUT/) {print $p_fh "$l_datefile FAILURE $p_msg\n";} } sub LogFat { # \e[37;40mFATAL # WHITE/BLACK my($p_fh) = $_[0]; my($p_msg) = $_[1]; my($l_date); chomp($l_date = `date +"%d.%m.%Y %H:%M"`); chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`); print "\e[37;40m FATAL \e[0m $l_date $p_msg\n"; if($p_fh !~ /STDOUT/) {print $p_fh "$l_datefile FATAL $p_msg\n";} } sub LogsClose { foreach (@G_FHs) { &LogInfo($_, "$_ closing"); if(close($_) == 0) {&LogFail($_, "Can't close $_ : $!");} } }