~grubng-dev/grubng/clients-perl

« back to all changes in this revision

Viewing changes to Client/Consolelogger.pm

  • Committer: yagnesh
  • Date: 2011-06-26 06:20:58 UTC
  • Revision ID: s_yagnesh@yahoo.com-20110626062058-gz2d86sl8x3j4amn
Added POD to all modules; added Makefile.PL; moved modules under /lib/ dir

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package Client::Consolelogger;
2
 
 
3
 
use Carp;
4
 
use strict;
5
 
use warnings;
6
 
use Client::Configmanager qw(get_loggers);
7
 
# This program is free software: you can redistribute it and/or modify
8
 
# it under the terms of the GNU General Public License as published by
9
 
# the Free Software Foundation, either version 3 of the License, or
10
 
# (at your option) any later version.
11
 
#
12
 
# This program is distributed in the hope that it will be useful,
13
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
# GNU General Public License for more details.
16
 
#
17
 
# You should have received a copy of the GNU General Public License
18
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 
 
20
 
 
21
 
my $loglevel;
22
 
my ($error, $warning, $info, $debug) = (1,2,3,4);
23
 
  
24
 
sub initialize{
25
 
  my $name = "Consolelogger";
26
 
  my $loggers_r = get_loggers();
27
 
  my $self; undef $self;
28
 
  
29
 
  foreach my $logger_r (keys %$loggers_r){
30
 
    if($$loggers_r{$logger_r}->{name} eq $name){
31
 
      $self = $logger_r;
32
 
      last;
33
 
    }
34
 
  }
35
 
 
36
 
  croak "Error: Unable to initialize $name." if(!defined($self));
37
 
  $loglevel = get_loggers()->{$self}->{'cfg'}->{'loglevel'};
38
 
}
39
 
 
40
 
BEGIN{
41
 
  initialize();
42
 
}
43
 
 
44
 
sub writeline($$$){
45
 
  my ($caller,$msg,$logtype) = @_;
46
 
  my $prefix = get_prefix($logtype);
47
 
  $logtype <= $loglevel && print localtime().":$prefix:$msg\n";
48
 
  croak $msg if ($loglevel == $error); # croak if $loglevel == Error
49
 
}
50
 
 
51
 
################################################################################
52
 
# Grub::Client::Consolelogger
53
 
# Returns the correct prefix for the provider logtype
54
 
# Params:
55
 
#  1.logtype: the type of log (one of error, warning, info or debug)
56
 
# 5/12/2011
57
 
################################################################################
58
 
sub get_prefix($){
59
 
 my ($logprefix,$logtype);
60
 
 $logtype = shift;
61
 
 $logtype = 1 if (!defined($logtype));
62
 
 
63
 
 SWITCH:{
64
 
    $logtype == $error && do { $logprefix = 'Error'; last; };
65
 
    $logtype == $warning && do { $logprefix = 'Warning'; last; };
66
 
    $logtype == $info && do { $logprefix = 'Info'; last; } ;
67
 
    $logtype == $debug && do { $logprefix = 'Debug'; last; };
68
 
  }
69
 
  return $logprefix;
70
 
}