~grubng-dev/grubng/clients-perl

« back to all changes in this revision

Viewing changes to Client/Logmanager.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
 
# This program is free software: you can redistribute it and/or modify
2
 
# it under the terms of the GNU General Public License as published by
3
 
# the Free Software Foundation, either version 3 of the License, or
4
 
# (at your option) any later version.
5
 
#
6
 
# This program is distributed in the hope that it will be useful,
7
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
8
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9
 
# GNU General Public License for more details.
10
 
#
11
 
# You should have received a copy of the GNU General Public License
12
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
13
 
 
14
 
##############################################
15
 
# Grub::Client::Logmanager
16
 
# Manages loggers on behalf of clients
17
 
# 5/9/2011
18
 
##############################################
19
 
package Client::Logmanager;
20
 
 
21
 
use Carp;
22
 
use Cwd;
23
 
use strict;
24
 
use warnings;
25
 
use Client::Configmanager qw(get_loggers);
26
 
use Module::Load;
27
 
no strict "refs";
28
 
 
29
 
@Client::Logmanager::ISA = qw(Exporter);
30
 
@Client::Logmanager::EXPORT_OK= qw(write);
31
 
 
32
 
my @loggers;
33
 
 
34
 
##############################################################################
35
 
# Grub::Client::Logmanager
36
 
# Reads the loggers in the configuration calls initialize sub on each logger
37
 
# 4/29/2011
38
 
##############################################################################
39
 
sub Initialize{
40
 
  my $loggers_r = get_loggers();
41
 
  my $write_r;
42
 
  # $loggers_r is a ref to HASH; iterate the $loggers_r collection get the loggers
43
 
  foreach my $logger (keys %$loggers_r){
44
 
    my $module = $$loggers_r{$logger}->{module};
45
 
    my $fullpathtomodule = getcwd."/".$module.".pm";
46
 
    load $fullpathtomodule;
47
 
    
48
 
    # replace / with ::
49
 
    $module =~ s/\//::/i;
50
 
    push(@loggers, $module);
51
 
  }
52
 
}
53
 
 
54
 
#############################################################
55
 
# Grub::Client::Logmanager
56
 
# Calls the write method on each configured logger
57
 
# 4/29/2011
58
 
#############################################################
59
 
sub write($$){
60
 
  my ($msg, $logtype) = @_;
61
 
  foreach my $module (@loggers){
62
 
    eval ( $module->writeline($msg,$logtype));
63
 
    #eval ( "Client::Filelogger::writeline($msg,$logtype);");
64
 
  }
65
 
}
66
 
 
67
 
1;