Filename | /opt/flows/lib/lib/perl5/Log/Any.pm |
Statements | Executed 53 statements in 967µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 1.31ms | 1.38ms | BEGIN@10 | Log::Any::
1 | 1 | 1 | 1.11ms | 1.49ms | BEGIN@11 | Log::Any::
2 | 2 | 1 | 66µs | 2.62ms | get_logger | Log::Any::
1 | 1 | 1 | 19µs | 19µs | BEGIN@1 | Search::Elasticsearch::Logger::LogAny::
1 | 1 | 1 | 11µs | 22µs | BEGIN@72 | Log::Any::
1 | 1 | 1 | 9µs | 14µs | BEGIN@3.6 | Search::Elasticsearch::Logger::LogAny::
1 | 1 | 1 | 9µs | 13µs | import | Log::Any::
1 | 1 | 1 | 9µs | 22µs | BEGIN@63 | Log::Any::
1 | 1 | 1 | 8µs | 22µs | BEGIN@2 | Search::Elasticsearch::Logger::LogAny::
2 | 1 | 1 | 6µs | 6µs | _get_proxy_class | Log::Any::
1 | 1 | 1 | 4µs | 4µs | _export_to_caller | Log::Any::
2 | 1 | 1 | 3µs | 3µs | _manager | Log::Any::
0 | 0 | 0 | 0s | 0s | set_adapter | Log::Any::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | 2 | 56µs | 1 | 19µs | # spent 19µs within Search::Elasticsearch::Logger::LogAny::BEGIN@1 which was called:
# once (19µs+0s) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 1 # spent 19µs making 1 call to Search::Elasticsearch::Logger::LogAny::BEGIN@1 |
2 | 2 | 28µs | 2 | 36µs | # spent 22µs (8+14) within Search::Elasticsearch::Logger::LogAny::BEGIN@2 which was called:
# once (8µs+14µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 2 # spent 22µs making 1 call to Search::Elasticsearch::Logger::LogAny::BEGIN@2
# spent 14µs making 1 call to strict::import |
3 | 2 | 59µs | 2 | 19µs | # spent 14µs (9+5) within Search::Elasticsearch::Logger::LogAny::BEGIN@3.6 which was called:
# once (9µs+5µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 3 # spent 14µs making 1 call to Search::Elasticsearch::Logger::LogAny::BEGIN@3.6
# spent 5µs making 1 call to warnings::import |
4 | |||||
5 | package Log::Any; | ||||
6 | |||||
7 | # ABSTRACT: Bringing loggers and listeners together | ||||
8 | 1 | 700ns | our $VERSION = '1.040'; | ||
9 | |||||
10 | 2 | 117µs | 1 | 1.38ms | # spent 1.38ms (1.31+73µs) within Log::Any::BEGIN@10 which was called:
# once (1.31ms+73µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 10 # spent 1.38ms making 1 call to Log::Any::BEGIN@10 |
11 | 1 | 9µs | 1 | 101µs | # spent 1.49ms (1.11+379µs) within Log::Any::BEGIN@11 which was called:
# once (1.11ms+379µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 19 # spent 101µs making 1 call to Exporter::import |
12 | require_dynamic | ||||
13 | detection_aliases | ||||
14 | detection_methods | ||||
15 | log_level_aliases | ||||
16 | logging_aliases | ||||
17 | logging_and_detection_methods | ||||
18 | logging_methods | ||||
19 | 1 | 284µs | 1 | 1.49ms | ); # spent 1.49ms making 1 call to Log::Any::BEGIN@11 |
20 | |||||
21 | # This is overridden in Log::Any::Test | ||||
22 | 1 | 0s | our $OverrideDefaultAdapterClass; | ||
23 | 1 | 0s | our $OverrideDefaultProxyClass; | ||
24 | |||||
25 | # singleton and accessor | ||||
26 | { | ||||
27 | 2 | 3µs | 1 | 6µs | my $manager = Log::Any::Manager->new(); # spent 6µs making 1 call to Log::Any::Manager::new |
28 | 2 | 6µs | # spent 3µs within Log::Any::_manager which was called 2 times, avg 2µs/call:
# 2 times (3µs+0s) by Log::Any::get_logger at line 82, avg 2µs/call | ||
29 | } | ||||
30 | |||||
31 | # spent 13µs (9+4) within Log::Any::import which was called:
# once (9µs+4µs) by Log::Any::Adapter::BEGIN@10 at line 10 of /opt/flows/lib/lib/perl5/Log/Any/Adapter.pm | ||||
32 | 1 | 600ns | my $class = shift; | ||
33 | 1 | 600ns | my $caller = caller(); | ||
34 | |||||
35 | 1 | 1µs | my @export_params = ( $caller, @_ ); | ||
36 | 1 | 4µs | 1 | 4µs | $class->_export_to_caller(@export_params); # spent 4µs making 1 call to Log::Any::_export_to_caller |
37 | } | ||||
38 | |||||
39 | # spent 4µs within Log::Any::_export_to_caller which was called:
# once (4µs+0s) by Log::Any::import at line 36 | ||||
40 | 1 | 300ns | my $class = shift; | ||
41 | 1 | 100ns | my $caller = shift; | ||
42 | |||||
43 | # Parse parameters passed to 'use Log::Any' | ||||
44 | 1 | 100ns | my $saw_log_param; | ||
45 | 1 | 200ns | my @params; | ||
46 | 1 | 900ns | while ( my $param = shift @_ ) { | ||
47 | if ( $param eq '$log' ) { | ||||
48 | $saw_log_param = 1; # defer until later | ||||
49 | next; # singular | ||||
50 | } | ||||
51 | else { | ||||
52 | push @params, $param, shift @_; # pairwise | ||||
53 | } | ||||
54 | } | ||||
55 | |||||
56 | 1 | 800ns | unless ( @params % 2 == 0 ) { | ||
57 | require Carp; | ||||
58 | Carp::croak("Argument list not balanced: @params"); | ||||
59 | } | ||||
60 | |||||
61 | # get logger if one was requested | ||||
62 | 1 | 5µs | if ($saw_log_param) { | ||
63 | 2 | 100µs | 2 | 35µs | # spent 22µs (9+13) within Log::Any::BEGIN@63 which was called:
# once (9µs+13µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 63 # spent 22µs making 1 call to Log::Any::BEGIN@63
# spent 13µs making 1 call to strict::unimport |
64 | my $proxy = $class->get_logger( category => $caller, @params ); | ||||
65 | my $varname = "$caller\::log"; | ||||
66 | *$varname = \$proxy; | ||||
67 | } | ||||
68 | } | ||||
69 | |||||
70 | # spent 2.62ms (66µs+2.55) within Log::Any::get_logger which was called 2 times, avg 1.31ms/call:
# once (37µs+2.43ms) by Search::Elasticsearch::Logger::LogAny::_build_log_handle at line 18 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Logger/LogAny.pm
# once (29µs+122µs) by Search::Elasticsearch::Logger::LogAny::_build_trace_handle at line 28 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Logger/LogAny.pm | ||||
71 | 2 | 4µs | my ( $class, %params ) = @_; | ||
72 | 2 | 230µs | 2 | 33µs | # spent 22µs (11+11) within Log::Any::BEGIN@72 which was called:
# once (11µs+11µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@8 at line 72 # spent 22µs making 1 call to Log::Any::BEGIN@72
# spent 11µs making 1 call to warnings::unimport |
73 | |||||
74 | 2 | 6µs | 2 | 6µs | my $proxy_class = $class->_get_proxy_class( delete $params{proxy_class} ); # spent 6µs making 2 calls to Log::Any::_get_proxy_class, avg 3µs/call |
75 | 2 | 3µs | my $category = | ||
76 | defined $params{category} ? delete $params{'category'} : caller; | ||||
77 | |||||
78 | 2 | 1µs | if ( my $default = delete $params{'default_adapter'} ) { | ||
79 | $class->_manager->set_default( $category, $default ); | ||||
80 | } | ||||
81 | |||||
82 | 2 | 10µs | 4 | 1.29ms | my $adapter = $class->_manager->get_adapter( $category ); # spent 1.29ms making 2 calls to Log::Any::Manager::get_adapter, avg 644µs/call
# spent 3µs making 2 calls to Log::Any::_manager, avg 2µs/call |
83 | |||||
84 | 2 | 5µs | 2 | 1.23ms | require_dynamic($proxy_class); # spent 1.23ms making 2 calls to Log::Any::Adapter::Util::require_dynamic, avg 614µs/call |
85 | 2 | 16µs | 2 | 29µs | return $proxy_class->new( # spent 29µs making 2 calls to Log::Any::Proxy::new, avg 14µs/call |
86 | %params, adapter => $adapter, category => $category, | ||||
87 | ); | ||||
88 | } | ||||
89 | |||||
90 | # spent 6µs within Log::Any::_get_proxy_class which was called 2 times, avg 3µs/call:
# 2 times (6µs+0s) by Log::Any::get_logger at line 74, avg 3µs/call | ||||
91 | 2 | 1µs | my ( $self, $proxy_name ) = @_; | ||
92 | 2 | 1µs | return $Log::Any::OverrideDefaultProxyClass | ||
93 | if $Log::Any::OverrideDefaultProxyClass; | ||||
94 | 2 | 8µs | return "Log::Any::Proxy" unless $proxy_name; | ||
95 | my $proxy_class = ( | ||||
96 | substr( $proxy_name, 0, 1 ) eq '+' | ||||
97 | ? substr( $proxy_name, 1 ) | ||||
98 | : "Log::Any::Proxy::$proxy_name" | ||||
99 | ); | ||||
100 | return $proxy_class; | ||||
101 | } | ||||
102 | |||||
103 | # For backward compatibility | ||||
104 | sub set_adapter { | ||||
105 | my $class = shift; | ||||
106 | Log::Any->_manager->set(@_); | ||||
107 | } | ||||
108 | |||||
109 | 1 | 4µs | 1; | ||
110 | |||||
111 | __END__ |