~percona-core/percona-toolkit/release-2.2.8-v2

« back to all changes in this revision

Viewing changes to lib/Percona/Test/Mock/AgentLogger.pm

  • Committer: Daniel Nichter
  • Date: 2013-06-19 21:23:55 UTC
  • mfrom: (582.1.5 release-2.2.3)
  • Revision ID: daniel@percona.com-20130619212355-nf6bmx23j3b76afe
Tags: 2.2.3
Merge release-2.2.3.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# This program is copyright 2013 Percona Ireland Ltd.
 
2
# Feedback and improvements are welcome.
 
3
#
 
4
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
 
5
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 
6
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
7
#
 
8
# This program is free software; you can redistribute it and/or modify it under
 
9
# the terms of the GNU General Public License as published by the Free Software
 
10
# Foundation, version 2; OR the Perl Artistic License.  On UNIX and similar
 
11
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
 
12
# licenses.
 
13
#
 
14
# You should have received a copy of the GNU General Public License along with
 
15
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 
16
# Place, Suite 330, Boston, MA  02111-1307  USA.
 
17
# ###########################################################################
 
18
# Percona::Agent::Logger package
 
19
# ###########################################################################
 
20
package Percona::Test::Mock::AgentLogger;
 
21
 
 
22
use strict;
 
23
use warnings FATAL => 'all';
 
24
use English qw(-no_match_vars);
 
25
 
 
26
use constant PTDEBUG => $ENV{PTDEBUG} || 0;
 
27
 
 
28
sub new {
 
29
   my ($class, %args) = @_;
 
30
   my $self = {
 
31
      log            => $args{log},
 
32
 
 
33
      exit_status    => $args{exit_status},
 
34
      pid            => $args{pid},
 
35
      online_logging => $args{online_logging},
 
36
 
 
37
      service        => undef,
 
38
      data_ts        => undef,
 
39
      quiet          => 0,
 
40
 
 
41
   };
 
42
   return bless $self, $class;
 
43
}
 
44
 
 
45
sub service {
 
46
   my $self = shift;
 
47
   my $_service = shift;
 
48
   $self->{service} = $_service if $_service;
 
49
   return $self->{service};
 
50
}
 
51
 
 
52
sub data_ts {
 
53
   my $self = shift;
 
54
   my $_data_ts = shift;
 
55
   $self->{data_ts} = $_data_ts if $_data_ts;
 
56
   return $self->{data_ts};
 
57
}
 
58
 
 
59
sub quiet {
 
60
   my $self = shift;
 
61
   my $_quiet = shift;
 
62
   $self->{quiet} = $_quiet if $_quiet;
 
63
   return $self->{quiet};
 
64
}
 
65
 
 
66
sub start_online_logging {
 
67
   my ($self, %args) = @_;
 
68
   $self->_log('-', 'Called start_online_logging()');
 
69
   return;
 
70
}
 
71
 
 
72
sub level_number {
 
73
   my $name = shift;
 
74
   die "No log level name given" unless $name;
 
75
   my $number = $name eq 'DEBUG'   ? 1
 
76
              : $name eq 'INFO'    ? 2
 
77
              : $name eq 'WARNING' ? 3
 
78
              : $name eq 'ERROR'   ? 4
 
79
              : $name eq 'FATAL'   ? 5
 
80
              : die "Invalid log level name: $name";
 
81
}
 
82
 
 
83
sub level_name {
 
84
   my $number = shift;
 
85
   die "No log level name given" unless $number;
 
86
   my $name = $number == 1 ? 'DEBUG'
 
87
            : $number == 2 ? 'INFO'
 
88
            : $number == 3 ? 'WARNING'
 
89
            : $number == 4 ? 'ERROR'
 
90
            : $number == 5 ? 'FATAL'
 
91
            : die "Invalid log level number: $number";
 
92
}
 
93
 
 
94
sub debug {
 
95
   my $self = shift;
 
96
   return $self->_log('DEBUG', @_);
 
97
}
 
98
 
 
99
sub info {
 
100
   my $self = shift;
 
101
   return $self->_log('INFO', @_);
 
102
}
 
103
 
 
104
sub warning {
 
105
   my $self = shift;
 
106
   return $self->_log('WARNING', @_);
 
107
}
 
108
 
 
109
sub error {
 
110
   my $self = shift;
 
111
   return $self->_log('ERROR', @_);
 
112
}
 
113
 
 
114
sub fatal {
 
115
   my $self = shift;
 
116
   $self->_log('FATAL', @_);
 
117
   return 255;
 
118
}
 
119
 
 
120
sub _log {
 
121
   my ($self, $level, $msg) = @_;
 
122
   push @{$self->{log}}, "$level $msg";
 
123
   return;
 
124
}
 
125
 
 
126
1;
 
127
# ###########################################################################
 
128
# End Percona::Test::Mock::AgentLogger package
 
129
# ###########################################################################