← Index
NYTProf Performance Profile   « line view »
For /usr/local/bin/sa-learn
  Run on Tue Nov 7 05:38:10 2017
Reported on Tue Nov 7 06:16:00 2017

Filename/usr/local/lib/perl5/site_perl/Mail/SpamAssassin/Logger/Stderr.pm
StatementsExecuted 24 statements in 2.08ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1118.95ms15.9msMail::SpamAssassin::Logger::Stderr::::BEGIN@37Mail::SpamAssassin::Logger::Stderr::BEGIN@37
1115.63ms6.75msMail::SpamAssassin::Logger::Stderr::::BEGIN@38Mail::SpamAssassin::Logger::Stderr::BEGIN@38
11154µs66µsMail::SpamAssassin::Logger::Stderr::::BEGIN@32Mail::SpamAssassin::Logger::Stderr::BEGIN@32
11140µs40µsMail::SpamAssassin::Logger::Stderr::::newMail::SpamAssassin::Logger::Stderr::new
11126µs96µsMail::SpamAssassin::Logger::Stderr::::BEGIN@35Mail::SpamAssassin::Logger::Stderr::BEGIN@35
11126µs31µsMail::SpamAssassin::Logger::Stderr::::BEGIN@34Mail::SpamAssassin::Logger::Stderr::BEGIN@34
11122µs101µsMail::SpamAssassin::Logger::Stderr::::BEGIN@40Mail::SpamAssassin::Logger::Stderr::BEGIN@40
11120µs48µsMail::SpamAssassin::Logger::Stderr::::BEGIN@33Mail::SpamAssassin::Logger::Stderr::BEGIN@33
1118µs8µsMail::SpamAssassin::Logger::Stderr::::close_logMail::SpamAssassin::Logger::Stderr::close_log
0000s0sMail::SpamAssassin::Logger::Stderr::::log_messageMail::SpamAssassin::Logger::Stderr::log_message
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# <@LICENSE>
2# Licensed to the Apache Software Foundation (ASF) under one or more
3# contributor license agreements. See the NOTICE file distributed with
4# this work for additional information regarding copyright ownership.
5# The ASF licenses this file to you under the Apache License, Version 2.0
6# (the "License"); you may not use this file except in compliance with
7# the License. You may obtain a copy of the License at:
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16# </@LICENSE>
17
18=head1 NAME
19
20Mail::SpamAssassin::Logger::Stderr - log to standard error
21
22=head1 SYNOPSIS
23
24 loadplugin Mail::SpamAssassin::Logger::Stderr
25
26=head1 DESCRIPTION
27
28=cut
29
30package Mail::SpamAssassin::Logger::Stderr;
31
32272µs278µs
# spent 66µs (54+12) within Mail::SpamAssassin::Logger::Stderr::BEGIN@32 which was called: # once (54µs+12µs) by Mail::SpamAssassin::Logger::BEGIN@72 at line 32
use strict;
# spent 66µs making 1 call to Mail::SpamAssassin::Logger::Stderr::BEGIN@32 # spent 12µs making 1 call to strict::import
33265µs277µs
# spent 48µs (20+29) within Mail::SpamAssassin::Logger::Stderr::BEGIN@33 which was called: # once (20µs+29µs) by Mail::SpamAssassin::Logger::BEGIN@72 at line 33
use warnings;
# spent 48µs making 1 call to Mail::SpamAssassin::Logger::Stderr::BEGIN@33 # spent 29µs making 1 call to warnings::import
34264µs236µs
# spent 31µs (26+5) within Mail::SpamAssassin::Logger::Stderr::BEGIN@34 which was called: # once (26µs+5µs) by Mail::SpamAssassin::Logger::BEGIN@72 at line 34
use bytes;
# spent 31µs making 1 call to Mail::SpamAssassin::Logger::Stderr::BEGIN@34 # spent 5µs making 1 call to bytes::import
35264µs2166µs
# spent 96µs (26+70) within Mail::SpamAssassin::Logger::Stderr::BEGIN@35 which was called: # once (26µs+70µs) by Mail::SpamAssassin::Logger::BEGIN@72 at line 35
use re 'taint';
# spent 96µs making 1 call to Mail::SpamAssassin::Logger::Stderr::BEGIN@35 # spent 70µs making 1 call to re::import
36
372290µs115.9ms
# spent 15.9ms (8.95+6.96) within Mail::SpamAssassin::Logger::Stderr::BEGIN@37 which was called: # once (8.95ms+6.96ms) by Mail::SpamAssassin::Logger::BEGIN@72 at line 37
use POSIX ();
# spent 15.9ms making 1 call to Mail::SpamAssassin::Logger::Stderr::BEGIN@37
382856µs16.75ms
# spent 6.75ms (5.63+1.12) within Mail::SpamAssassin::Logger::Stderr::BEGIN@38 which was called: # once (5.63ms+1.12ms) by Mail::SpamAssassin::Logger::BEGIN@72 at line 38
use Time::HiRes ();
# spent 6.75ms making 1 call to Mail::SpamAssassin::Logger::Stderr::BEGIN@38
39
402591µs2179µs
# spent 101µs (22+78) within Mail::SpamAssassin::Logger::Stderr::BEGIN@40 which was called: # once (22µs+78µs) by Mail::SpamAssassin::Logger::BEGIN@72 at line 40
use vars qw(@ISA);
# spent 101µs making 1 call to Mail::SpamAssassin::Logger::Stderr::BEGIN@40 # spent 78µs making 1 call to vars::import
41111µs@ISA = ();
42
43
# spent 40µs within Mail::SpamAssassin::Logger::Stderr::new which was called: # once (40µs+0s) by Mail::SpamAssassin::BEGIN@69 at line 73 of Mail/SpamAssassin/Logger.pm
sub new {
4412µs my $class = shift;
45
4617µs $class = ref($class) || $class;
4712µs my $self = { };
4812µs bless ($self, $class);
49
5012µs my %params = @_;
51116µs $self->{timestamp_fmt} = $params{timestamp_fmt};
52
53114µs return($self);
54}
55
56sub log_message {
57 my ($self, $level, $msg) = @_;
58
59 my $timestamp;
60 my $fmt = $self->{timestamp_fmt};
61 if (!defined $fmt) {
62 # default since 3.3.0
63 my $now = Time::HiRes::time;
64 $timestamp = sprintf("%s:%06.3f",
65 POSIX::strftime("%b %d %H:%M", localtime($now)), $now-int($now/60)*60);
66 # Bug 6329: %e is not in a POSIX standard, use %d instead and edit
67 local $1; $timestamp =~ s/^(\S+\s+)0/$1 /;
68 } elsif ($fmt eq '') {
69 $timestamp = '';
70 } else {
71 $timestamp = POSIX::strftime($fmt, localtime(Time::HiRes::time));
72 }
73 $timestamp .= ' ' if $timestamp ne '';
74
75 my($nwrite) = syswrite(STDERR, sprintf("%s[%d] %s: %s\n",
76 $timestamp, $$, $level, $msg));
77 defined $nwrite or warn "error writing to log file: $!";
78}
79
80
# spent 8µs within Mail::SpamAssassin::Logger::Stderr::close_log which was called: # once (8µs+0s) by Mail::SpamAssassin::Logger::close_log at line 360 of Mail/SpamAssassin/Logger.pm
sub close_log {
81114µs my ($self) = @_;
82}
83
8418µs1;