annotate variant_effect_predictor/Bio/EnsEMBL/Utils/Logger.pm @ 1:d6778b5d8382 draft default tip

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