annotate variant_effect_predictor/Bio/EnsEMBL/Utils/Logger.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 Bio::EnsEMBL::Utils::ConversionSupport - Utility module for Vega release and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 schema conversion scripts
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 my $serverroot = '/path/to/ensembl';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 my $suport = new Bio::EnsEMBL::Utils::ConversionSupport($serverroot);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 # parse common options
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 $support->parse_common_options;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 # parse extra options for your script
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 $support->parse_extra_options( 'string_opt=s', 'numeric_opt=n' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 # ask user if he wants to run script with these parameters
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 $support->confirm_params;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 # see individual method documentation for more stuff
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 This module is a collection of common methods and provides helper
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 functions for the Vega release and schema conversion scripts. Amongst
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 others, it reads options from a config file, parses commandline options
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 and does logging.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 package Bio::EnsEMBL::Utils::Logger;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 no warnings 'uninitialized';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 use FindBin qw($Bin $Script);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 use POSIX qw(strftime);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 use Bio::EnsEMBL::Utils::Exception qw(throw);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 use Bio::EnsEMBL::Utils::ScriptUtils qw(parse_bytes);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 my %level_defs = (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 'error' => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 'warn' => 2,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 'warning' => 2,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 'info' => 3,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 'debug' => 4,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 'verbose' => 4,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 my @reverse_level_defs = (undef, qw(error warning info debug));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 Arg[1] : String $serverroot - root directory of your ensembl sandbox
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 Example : my $support = new Bio::EnsEMBL::Utils::ConversionSupport(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 '/path/to/ensembl');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 Description : constructor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 Return type : Bio::EnsEMBL::Utils::ConversionSupport object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 Exceptions : thrown on invalid loglevel
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 my ($logfile, $logauto, $logautobase, $logautoid, $logpath, $logappend,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 $loglevel, $is_component) = rearrange(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 ['LOGFILE', 'LOGAUTO', 'LOGAUTOBASE', 'LOGAUTOID', 'LOGPATH', 'LOGAPPEND',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 'LOGLEVEL', 'IS_COMPONENT'], @_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 my $self = { '_warnings' => 0, };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 bless ($self, $class);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 # initialise
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 $self->logfile($logfile);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 $self->logpath($logpath);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 $self->logappend($logappend);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 $self->is_component($is_component);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 # automatic logfile creation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 $self->logauto($logauto);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 $logautoid ||= strftime("%Y%m%d-%H%M%S", localtime);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 $self->log_auto_id($logautoid);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 $self->create_auto_logfile($logautobase);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 $loglevel ||= 'info';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 if ($loglevel =~ /^\d+$/ and $loglevel > 0 and $loglevel < 5) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 $self->{'loglevel'} = $loglevel;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 } elsif ($level_defs{lc($loglevel)}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 $self->{'loglevel'} = $level_defs{lc($loglevel)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 throw('Unknown loglevel: $loglevel.');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 =head2 log_generic
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 Arg[1] : String $txt - the text to log
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 Arg[2] : Int $indent - indentation level for log message
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 Example : my $log = $support->log_filehandle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 $support->log('Log foo.\n', 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Description : Logs a message to the filehandle initialised by calling
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 $self->log_filehandle(). You can supply an indentation level
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 to get nice hierarchical log messages.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 Return type : true on success
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 Exceptions : thrown when no filehandle can be obtained
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 sub log_generic {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 my ($self, $txt, $indent, $stamped) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 $indent ||= 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 my $fh = $self->log_filehandle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 # append timestamp and memory usage to log text if requested
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 if ($stamped) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 $txt =~ s/^(\n*)(.*)(\n*)$/$2/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 $txt = sprintf("%-60s%20s", $txt, $self->time_and_mem);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 $txt = $1.$txt.$3;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 # strip off leading linebreaks so that indenting doesn't break
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 $txt =~ s/^(\n*)//;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 # indent
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 $txt = $1." "x$indent . $txt;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 print $fh "$txt";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 return(1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 =head2 error
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Arg[1] : String $txt - the error text to log
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Arg[2] : Int $indent - indentation level for log message
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Example : my $log = $support->log_filehandle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 $support->log_error('Log foo.\n', 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 Description : Logs a message via $self->log and exits the script.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 Return type : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 sub error {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 my ($self, $txt, $indent, $stamped) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 return(0) unless ($self->{'loglevel'} >= 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 $txt = "ERROR: ".$txt;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 $self->log_generic($txt, $indent, $stamped);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 $self->log_generic("\nExiting prematurely.\n\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 $self->log_generic("Runtime: ".$self->runtime." ".$self->date_and_mem."\n\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 exit(1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 =head2 warning
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 Arg[1] : String $txt - the warning text to log
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 Arg[2] : Int $indent - indentation level for log message
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 Example : my $log = $support->log_filehandle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 $support->log_warning('Log foo.\n', 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 Description : Logs a message via $self->log and increases the warning counter.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 Return type : true on success
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 sub warning {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 my ($self, $txt, $indent, $stamped) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 return(0) unless ($self->{'loglevel'} >= 2);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 $txt = "WARNING: " . $txt;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 $self->log_generic($txt, $indent, $stamped);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 $self->{'_warnings'}++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 return(1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 sub info {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 my ($self, $txt, $indent, $stamped) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 return(0) unless ($self->{'loglevel'} >= 3);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 $self->log_generic($txt, $indent, $stamped);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 return(1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 =head2 debug
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 Arg[1] : String $txt - the warning text to log
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 Arg[2] : Int $indent - indentation level for log message
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 Example : my $log = $support->log_filehandle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 $support->log_verbose('Log this verbose message.\n', 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 Description : Logs a message via $self->log if --verbose option was used
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 Return type : TRUE on success, FALSE if not verbose
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 sub debug {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 my ($self, $txt, $indent, $stamped) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 return(0) unless ($self->{'loglevel'} >= 4);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 $self->log_generic($txt, $indent, $stamped);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 return(1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 sub log_progress {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 my $name = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 my $curr = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 my $indent = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 throw("You must provide a name and the current value for your progress bar")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 unless ($name and $curr);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 # return if we haven't reached the next increment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 return if ($curr < int($self->{'_progress'}->{$name}->{'next'}));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 my $index = $self->{'_progress'}->{$name}->{'index'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 my $num_bins = $self->{'_progress'}->{$name}->{'numbins'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 my $percent = $index/$num_bins*100;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 my $log_str;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 $log_str .= ' 'x$indent if ($index == 0);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 $log_str .= "\b"x4;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 $log_str .= sprintf("%3s%%", $percent);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 $log_str .= "\n" if ($curr == $self->{'_progress'}->{$name}->{'max_val'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 $self->info($log_str);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 # increment counters
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 $self->{'_progress'}->{$name}->{'index'}++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 $self->{'_progress'}->{$name}->{'next'} += $self->{'_progress'}->{$name}->{'binsize'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 sub log_progressbar {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 my $name = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 my $curr = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 my $indent = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 throw("You must provide a name and the current value for your progress bar")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 unless ($name and $curr);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 # return if we haven't reached the next increment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 return if ($curr < int($self->{'_progress'}->{$name}->{'next'}));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 my $index = $self->{'_progress'}->{$name}->{'index'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 my $num_bins = $self->{'_progress'}->{$name}->{'numbins'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 my $percent = $index/$num_bins*100;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 my $log_str = "\r".(' 'x$indent)."[".('='x$index).(' 'x($num_bins-$index))."] ${percent}\%";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 $log_str .= "\n" if ($curr == $self->{'_progress'}->{$name}->{'max_val'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 $self->info($log_str);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 # increment counters
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 $self->{'_progress'}->{$name}->{'index'}++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 $self->{'_progress'}->{$name}->{'next'} += $self->{'_progress'}->{$name}->{'binsize'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 sub init_progress {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 my $max = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 my $num_bins = shift || 50;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 throw("You must provide the maximum value for your progress bar")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 unless (defined($max));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 # auto-generate a unique name for your progressbar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 my $name = time . '_' . int(rand(1000));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 # calculate bin size; we will use 50 bins (2% increments)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 my $binsize = $max/$num_bins;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 $self->{'_progress'}->{$name}->{'max_val'} = $max;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 $self->{'_progress'}->{$name}->{'binsize'} = $binsize;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 $self->{'_progress'}->{$name}->{'numbins'} = $num_bins;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 $self->{'_progress'}->{$name}->{'next'} = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 $self->{'_progress'}->{$name}->{'index'} = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 return $name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 =head2 log_filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 Arg[1] : (optional) String $mode - file access mode
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 Example : my $log = $support->log_filehandle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 # print to the filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 print $log 'Lets start logging...\n';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 # log via the wrapper $self->log()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 $support->log('Another log message.\n');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 Description : Returns a filehandle for logging (STDERR by default, logfile if
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 set from config or commandline). You can use the filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 directly to print to, or use the smart wrapper $self->log().
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 Logging mode (truncate or append) can be set by passing the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 mode as an argument to log_filehandle(), or with the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 --logappend commandline option (default: truncate)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 Return type : Filehandle - the filehandle to log to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 Exceptions : thrown if logfile can't be opened
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 sub log_filehandle {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 my ($self, $mode) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 unless ($self->{'_log_filehandle'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 $mode ||= '>';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 $mode = '>>' if ($self->logappend);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 my $fh = \*STDERR;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 if (my $logfile = $self->logfile) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 if (my $logpath = $self->logpath) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 unless (-e $logpath) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 system("mkdir -p $logpath") == 0 or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 throw("Can't create log dir $logpath: $!\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 $logfile = "$logpath/".$self->logfile;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 open($fh, "$mode", $logfile) or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 throw("Unable to open $logfile for writing: $!");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 $self->{'_log_filehandle'} = $fh;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 return $self->{'_log_filehandle'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 =head2 extract_log_identifier
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386 Arg[1] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 Description :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 Return type :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 Caller :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 Status :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 sub extract_log_identifier {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 if (my $logfile = $self->logfile) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 $logfile =~ /.+\.([^\.]+)\.log/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 return $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 return undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 =head2 init_log
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 Example : $support->init_log;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411 Description : Opens a filehandle to the logfile and prints some header
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 information to this file. This includes script name, date, user
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 running the script and parameters the script will be running
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414 with.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415 Return type : Filehandle - the log filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421 sub init_log {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 my $params = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 # get a log filehandle
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 my $log = $self->log_filehandle;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428 # remember start time
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429 $self->{'_start_time'} = time;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431 # don't log parameters if this script is run by another one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 if ($self->logauto or ! $self->is_component) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 # print script name, date, user who is running it
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 my $hostname = `hostname`;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435 chomp $hostname;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 my $script = "$hostname:$Bin/$Script";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 my $user = `whoami`;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 chomp $user;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439 $self->info("Script: $script\nDate: ".$self->date."\nUser: $user\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 # print parameters the script is running with
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442 if ($params) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 $self->info("Parameters:\n\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 $self->info($params);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 return $log;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 =head2 finish_log
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454 Example : $support->finish_log;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455 Description : Writes footer information to a logfile. This includes the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456 number of logged warnings, timestamp and memory footprint.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457 Return type : TRUE on success
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463 sub finish_log {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466 $self->info("\nAll done for $Script.\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467 $self->info($self->warning_count." warnings. ");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468 $self->info("Runtime: ".$self->runtime." ".$self->date_and_mem."\n\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470 return(1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474 sub runtime {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477 my $runtime = "n/a";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
479 if ($self->{'_start_time'}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
480 my $diff = time - $self->{'_start_time'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
481 my $sec = $diff % 60;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
482 $diff = ($diff - $sec) / 60;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
483 my $min = $diff % 60;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
484 my $hours = ($diff - $min) / 60;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
485
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
486 $runtime = "${hours}h ${min}min ${sec}sec";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
487 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
488
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
489 return $runtime;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
490 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
491
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
492
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
493 =head2 date_and_mem
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
494
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
495 Example : print LOG "Time, memory usage: ".$support->date_and_mem."\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
496 Description : Prints a timestamp and the memory usage of your script.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
497 Return type : String - timestamp and memory usage
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
498 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
499 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
500
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
501 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
502
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
503 sub date_and_mem {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
504 my $date = strftime "%Y-%m-%d %T", localtime;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
505 my $mem = `ps -p $$ -o vsz |tail -1`;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
506 chomp $mem;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
507 $mem = parse_bytes($mem*1000);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
508 return "[$date, mem $mem]";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
509 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
510
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
511
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
512 sub time_and_mem {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
513 my $date = strftime "%T", localtime;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
514 my $mem = `ps -p $$ -o vsz |tail -1`;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
515 chomp $mem;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
516 $mem = parse_bytes($mem*1000);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
517 $mem =~ s/ //;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
518 return "[$date|$mem]";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
519 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
520
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
521
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
522 =head2 date
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
523
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
524 Example : print "Date: " . $support->date . "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
525 Description : Prints a nicely formatted timestamp (YYYY-DD-MM hh:mm:ss)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
526 Return type : String - the timestamp
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
527 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
528 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
529
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
530 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
531
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
532 sub date {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
533 return strftime "%Y-%m-%d %T", localtime;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
534 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
535
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
536
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
537 =head2 mem
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
538
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
539 Example : print "Memory usage: " . $support->mem . "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
540 Description : Prints the memory used by your script. Not sure about platform
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
541 dependence of this call ...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
542 Return type : String - memory usage
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
543 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
544 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
545
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
546 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
547
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
548 sub mem {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
549 my $mem = `ps -p $$ -o vsz |tail -1`;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
550 chomp $mem;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
551 return $mem;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
552 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
553
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
554
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
555 =head2 warning_count
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
556
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
557 Example : print LOG "There were ".$support->warnings." warnings.\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
558 Description : Returns the number of warnings encountered while running the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
559 script (the warning counter is increased by $self->log_warning).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
560 Return type : Int - number of warnings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
561 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
562 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
563
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
564 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
565
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
566 sub warning_count {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
567 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
568 return $self->{'_warnings'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
569 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
570
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
571
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
572 =head2 logfile
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
573
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
574 Arg[1] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
575 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
576 Description : Getter and setter for the logfile
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
577 Return type :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
578 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
579 Caller :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
580 Status :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
581
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
582 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
583
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
584 sub logfile {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
585 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
586 $self->{'_logfile'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
587 return $self->{'_logfile'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
588 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
589
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
590
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
591 =head2 log_auto_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
592
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
593 Arg[1] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
594 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
595 Description :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
596 Return type :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
597 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
598 Caller :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
599 Status :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
600
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
601 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
602
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
603 sub log_auto_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
604 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
605 $self->{'_log_auto_id'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
606 return $self->{'_log_auto_id'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
607 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
608
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
609
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
610 sub logauto {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
611 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
612 $self->{'_log_auto'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
613 return $self->{'_log_auto'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
614 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
615
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
616
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
617 =head2 create_auto_logfile
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
618
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
619 Arg[1] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
620 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
621 Description :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
622 Return type :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
623 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
624 Caller :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
625 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
626 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
627
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
628 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
629
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
630 sub create_auto_logfile {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
631 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
632 my $logautobase = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
633
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
634 # do nothing if automatic logfile generation isn't set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
635 return unless ($self->logauto);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
636
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
637 # an explicit logfile name overrides LOGAUTO
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
638 return if ($self->logfile);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
639
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
640 # argument check
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
641 unless ($logautobase) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
642 throw('Need a base logfile name for auto-generating logfile.');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
643 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
644
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
645 # create a logfile name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
646 $self->logfile("${logautobase}_".$self->log_auto_id.".log");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
647 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
648
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
649
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
650 =head2 logpath
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
651
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
652 Arg[1] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
653 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
654 Description :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
655 Return type :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
656 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
657 Caller :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
658 Status :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
659
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
660 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
661
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
662 sub logpath {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
663 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
664 $self->{'_logpath'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
665 return $self->{'_logpath'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
666 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
667
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
668
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
669 =head2 logappend
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
670
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
671 Arg[1] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
672 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
673 Description :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
674 Return type :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
675 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
676 Caller :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
677 Status :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
678
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
679 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
680
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
681 sub logappend {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
682 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
683 $self->{'_logappend'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
684 return $self->{'_logappend'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
685 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
686
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
687
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
688 =head2 is_component
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
689
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
690 Arg[1] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
691 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
692 Description :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
693 Return type :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
694 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
695 Caller :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
696 Status :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
697
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
698 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
699
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
700 sub is_component {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
701 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
702 $self->{'_is_component'} = shift if (@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
703 return $self->{'_is_component'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
704 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
705
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
706
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
707 sub loglevel {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
708 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
709 return $reverse_level_defs[$self->{'loglevel'}];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
710 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
711
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
712
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
713 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
714 # deprecated methods (left here for backwards compatibility
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
715 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
716 sub log_error {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
717 return $_[0]->error(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
718 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
719
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
720 sub log_warning {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
721 return $_[0]->warning(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
722 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
723
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
724 sub log {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
725 return $_[0]->info(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
726 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
727
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
728 sub log_verbose {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
729 return $_[0]->debug(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
730 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
731
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
732 sub log_stamped {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
733 return $_[0]->log(@_, 1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
734 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
735
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
736
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
737
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
738 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
739