File Coverage

blib/lib/Tivoli/Logging.pm
Criterion Covered Total %
statement 0 64 0.0
branch 0 14 0.0
condition n/a
subroutine 0 7 0.0
pod 6 7 85.7
total 6 92 6.5


line stmt bran cond sub pod time code
1             package Tivoli::Logging;
2            
3             # RHase
4             # www.Muc-Net.de
5             # sys.m.TEC GmbH
6             # www.sysmtec.de
7            
8             our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase);
9             require Exporter;
10             @ISA = qw(Exporter);
11             @EXPORT = qw($G_LOGDO @G_FHs LogOpenNew LogOpenAppend LogInfo LogWarn LogFail LogFat LogsClose);
12            
13             $VERSION = '0.02';
14            
15            
16             ################################################################################################
17            
18             =pod
19            
20             =head1 NAME
21            
22             Tivoli::Logging - Perl Extension for Tivoli
23            
24             =head1 SYNOPSIS
25            
26             use Tivoli::Logging;
27            
28            
29             =head1 VERSION
30            
31             v0.02
32            
33             =head1 License
34            
35             Copyright (c) 2001 Robert Hase.
36             All rights reserved.
37             This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
38            
39             =head1 DESCRIPTION
40            
41             =over
42            
43             This Package will handle about everything you may need for Logging.
44             If anything has been left out, please contact me at
45             tivoli.rhase@muc-net.de
46             so it can be added.
47            
48             Prints formated Logging-Informations to STDOUT and if wanted to one or more Files.
49             Supports an unlimited Numbers of open Files (dynamical Filehandlers) and
50             prints the Type of the STDOUT-Information in Color (requires ANSI).
51            
52             Should be the first loaded Tivoli-Package.
53            
54             =back
55            
56             =head2 DETAILS
57            
58             =over
59            
60             If Parameter L = STDOUT the Logging-Message will only be sended to Standard-Out
61            
62             =item * Types of Logging and Colors
63            
64             ROUTINE TYPE FOREGROUND/BACKGROUND
65             -----------------------------------------------------
66             LogInfo (Info) black/green
67             LogWarn (Warning) black/yellow
68             LogFail (Failed) black/red
69             LogFat (Fatal) white/black
70            
71             =item * Loggings to STDOUT
72            
73             Prints Logging-Informations in the following Format:
74             TYPE dd.mm.yyyy hh:mm:ss MSG
75            
76             =item * SAMPLE
77            
78             &LogInfo(STDOUT, "This is an Information-Message only to Standard-Out");
79            
80             =item * OUTPUT
81            
82             INFO 23.07.2001 This is an Information-Message only to Standard-Out
83            
84             =item * Logging to Files
85            
86             Prints Logging-Informations in the following Format:
87             yyyy-mm-dd hh:mm:ss TYPE MSG
88            
89             =item * SAMPLE
90            
91             &LogInfo($G_LOGFILE1, "This is an Information-Message to Standard-Out AND Logfile $G_LOGFILE1");
92            
93             =item * OUTPUT
94            
95             STDOUT: INFO 23.07.2001 13:27:42 This is an Information-Message to Standard-Out AND Logfile $G_LOGFILE1
96             FILE : 2001-07-23 13:27:42 INFO This is an Information-Message to Standard-Out AND Logfile $G_LOGFILE1
97            
98             =back
99            
100             =head2 Routines
101            
102             =over
103            
104             Details to the Logging-Functionality
105            
106             =back
107            
108             =head3 LogOpenNew
109            
110             =over
111            
112             =item * CALL
113            
114             $FileHandle = &LogOpenNew();
115            
116             =item * DESCRIPTION
117            
118             - opens a new Log-File
119             - prints L to Display and L<$FileHandle>
120             - returns the File-Handler
121            
122             =back
123            
124             =head3 LogOpenAppend
125            
126             =over
127            
128             =item * CALL
129            
130             $FileHandle = &LogOpenAppend();
131            
132             =item * DESCRIPTION
133            
134             - opens PATH/FILENAME for Append
135             - prints L to Display and $FileHandle
136             - returns the File-Handler
137            
138             =back
139            
140             =head3 LogInfo
141            
142             =over
143            
144             =item * CALL
145            
146             &LogInfo($FileHandle, );
147            
148             =item * DESCRIPTION
149            
150             - prints INFO-Message to Display
151             - prints INFO-Message to $FileHandle if $FileHandle not 0
152            
153             =back
154            
155             =head3 LogWarn
156            
157             =over
158            
159             =item * CALL
160            
161             &LogWarn($FileHandle, );
162            
163             =item * DESCRIPTION
164            
165             - prints WARN-Message to Display
166             - prints WARN-Message to $FileHandle if $FileHandle not 0
167            
168             =back
169            
170             =head3 LogFail
171            
172             =over
173            
174             =item * CALL
175            
176             &LogFail($FileHandle, );
177            
178             =item * DESCRIPTION
179            
180             - prints FAILED-Message to Display
181             - prints FAILED-Message to $FileHandle if $FileHandle not 0
182            
183             =back
184            
185             =head3 LogFat
186            
187             =over
188            
189             =item * CALL
190            
191             &LogFat($FileHandle, );
192            
193             =item * DESCRIPTION
194            
195             - prints FATAL-Message to Display
196             - prints FATAL-Message to $FileHandle if $FileHandle not 0
197            
198             =back
199            
200             =head3 LogClose
201            
202             =over
203            
204             =item * CALL
205            
206             &LogsClose;
207            
208             =item * DESCRIPTION
209            
210             - prints INFO-Message to Display
211             - prints INFO-Message to EVERY $FileHandle if exist
212             - close EVERY open (Logging-) File-Handler
213            
214             =back
215            
216             =head2 Plattforms and Requirements
217            
218             =over
219            
220             Supported Plattforms and Requirements
221            
222             =item * Plattforms
223            
224             tested on:
225            
226             - w32-ix86 (W9x, NT4, Windows 2000)
227             - aix4-r1 (AIX 4.3)
228             - Linux (Kernel 2.2.x)
229            
230             =back
231            
232             =item * Requirements
233            
234             requires Perl v5 or higher
235            
236             =back
237            
238             =head2 HISTORY
239            
240             VERSION DATE AUTHOR WORK
241             ----------------------------------------------------
242             0.01 2001-07-18 RHase created
243             0.02 2001-07-23 RHase POD-Doku added
244            
245             =head1 AUTHOR
246            
247             Robert Hase
248             ID : RHASE
249             eMail : Tivoli.RHase@Muc-Net.de
250             Web : http://www.Muc-Net.de
251            
252             =head1 SEE ALSO
253            
254             CPAN
255             http://www.perl.com
256            
257             =cut
258            
259            
260             ###############################################################################################
261            
262            
263             sub LogOpenNew
264             {
265 0     0 1   my($p_logfile) = $_[0];
266 0           my($l_random);
267 0           chomp($l_date = `date +"%d.%m.%Y %H:%M"`);
268 0           chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`);
269 0           $l_random = 42;
270 0           $l_random += int(rand($$*$l_random/2*5)) + $$;
271 0           $l_random += int(rand($$*$l_random/2*5)) + $$;
272 0 0         if(open($l_random, ">$p_logfile") == 0)
273             {
274 0           print "\e[30;41mFAILURE\e[0m $l_date Function LogOpenNew $p_logfile $!\n";
275 0           return(0);
276             }
277 0           print "\e[30;42m INFO \e[0m $l_date Function LogOpenNew $p_logfile open\n";
278 0           print $l_random "$l_datefile INFO Function LogOpenNew $p_logfile (FH $l_random) open\n";
279 0           push(@G_FHs, $l_random);
280 0           return($l_random);
281             }
282            
283             sub LogOpenAppend
284             {
285 0     0 1   my($p_logfile) = $_[0];
286 0           my($l_random, $l_date);
287 0           chomp($l_date = `date +"%d.%m.%Y %H:%M"`);
288 0           chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`);
289 0           $l_random = 42;
290 0           $l_random += int(rand($$*$l_random/2*5)) + $$;
291 0           $l_random += int(rand($$*$l_random/2*5)) + $$;
292 0 0         if(open($l_random, ">>$p_logfile") == 0)
293             {
294 0           print "\e[30;41mFAILURE\e[0m $l_date Function LogOpenAppend $p_logfile $!\n";
295 0           return(0);
296             }
297 0           print "\e[30;42m INFO \e[0m $l_date Function LogOpenAppend $p_logfile open\n";
298 0           print $l_random "$l_datefile INFO Function LogOpenAppend $p_logfile (FH $l_random) open\n";
299 0           push(@G_FHs, $l_random);
300 0           return($l_random);
301             }
302            
303             sub LogInfo
304             {
305             # \e[30;42m # BLACK/GREEN
306            
307 0     0 1   my($p_fh) = $_[0];
308 0           my($p_msg) = $_[1];
309 0           my($l_date);
310 0           chomp($l_date = `date +"%d.%m.%Y %H:%M"`);
311 0           chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`);
312 0           print "\e[30;42m INFO \e[0m $l_date $p_msg\n";
313 0 0         if($p_fh !~ /STDOUT/) {print $p_fh "$l_datefile INFO $p_msg\n";}
  0            
314             }
315            
316             sub LogWarn
317             {
318             # \e[30;43m # BLACK/YELLOW
319 0     0 1   my($p_fh) = $_[0];
320 0           my($p_msg) = $_[1];
321 0           my($l_date);
322 0           chomp($l_date = `date +"%d.%m.%Y %H:%M"`);
323 0           chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`);
324 0           print "\e[30;43mWARNING\e[0m $l_date $p_msg\n";
325 0 0         if($p_fh !~ /STDOUT/) {print $p_fh "$l_datefile WARNING $p_msg\n";}
  0            
326             }
327            
328             sub LogFail
329             {
330             # \e[30;41mFAILURE # BLACK/RED
331 0     0 1   my($p_fh) = $_[0];
332 0           my($p_msg) = $_[1];
333 0           my($l_date);
334 0           chomp($l_date = `date +"%d.%m.%Y %H:%M"`);
335 0           chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`);
336 0           print "\e[30;41mFAILURE\e[0m $l_date $p_msg\n";
337 0 0         if($p_fh !~ /STDOUT/) {print $p_fh "$l_datefile FAILURE $p_msg\n";}
  0            
338             }
339            
340             sub LogFat
341             {
342             # \e[37;40mFATAL # WHITE/BLACK
343 0     0 1   my($p_fh) = $_[0];
344 0           my($p_msg) = $_[1];
345 0           my($l_date);
346 0           chomp($l_date = `date +"%d.%m.%Y %H:%M"`);
347 0           chomp($l_datefile = `date +"%Y-%m-%d %H:%M:%S"`);
348 0           print "\e[37;40m FATAL \e[0m $l_date $p_msg\n";
349 0 0         if($p_fh !~ /STDOUT/) {print $p_fh "$l_datefile FATAL $p_msg\n";}
  0            
350             }
351            
352             sub LogsClose
353             {
354 0     0 0   foreach (@G_FHs)
355             {
356 0           &LogInfo($_, "$_ closing");
357 0 0         if(close($_) == 0) {&LogFail($_, "Can't close $_ : $!");}
  0            
358             }
359             }