… | |
… | |
1311 | } |
1311 | } |
1312 | |
1312 | |
1313 | 0 # not logged |
1313 | 0 # not logged |
1314 | } |
1314 | } |
1315 | |
1315 | |
1316 | sub logger($;$) { |
1316 | sub _logger($;$) { |
1317 | package AnyEvent::Log; |
|
|
1318 | |
|
|
1319 | my ($level, $renabled) = @_; |
1317 | my ($level, $renabled) = @_; |
1320 | |
1318 | |
1321 | $$renabled = $level <= $VERBOSE; |
1319 | $$renabled = $level <= $VERBOSE; |
1322 | |
1320 | |
1323 | my $pkg = (caller)[0]; |
|
|
1324 | |
|
|
1325 | my $logger = [$pkg, $level, $renabled]; |
1321 | my $logger = [(caller)[0], $level, $renabled]; |
1326 | |
1322 | |
1327 | our %LOGGER; |
|
|
1328 | $LOGGER{$logger+0} = $logger; |
1323 | $AnyEvent::Log::LOGGER{$logger+0} = $logger; |
1329 | |
1324 | |
1330 | return unless defined wantarray; |
1325 | # return unless defined wantarray; |
1331 | |
1326 | # |
1332 | require AnyEvent::Util; |
1327 | # require AnyEvent::Util; |
1333 | my $guard = AnyEvent::Util::guard (sub { |
1328 | # my $guard = AnyEvent::Util::guard (sub { |
1334 | # "clean up" |
1329 | # # "clean up" |
1335 | delete $LOGGER{$logger+0}; |
1330 | # delete $LOGGER{$logger+0}; |
1336 | }); |
1331 | # }); |
1337 | |
1332 | # |
1338 | sub { |
1333 | # sub { |
1339 | return 0 unless $$renabled; |
1334 | # return 0 unless $$renabled; |
1340 | |
1335 | # |
1341 | $guard if 0; # keep guard alive, but don't cause runtime overhead |
1336 | # $guard if 0; # keep guard alive, but don't cause runtime overhead |
1342 | require AnyEvent::Log unless $AnyEvent::Log::VERSION; |
1337 | # require AnyEvent::Log unless $AnyEvent::Log::VERSION; |
1343 | package AnyEvent::Log; |
1338 | # package AnyEvent::Log; |
1344 | _log ($logger->[0], $level, @_) # logger->[0] has been converted at load time |
1339 | # _log ($logger->[0], $level, @_) # logger->[0] has been converted at load time |
1345 | } |
1340 | # } |
1346 | } |
1341 | } |
1347 | |
1342 | |
1348 | if (length $ENV{PERL_ANYEVENT_LOG}) { |
1343 | if (length $ENV{PERL_ANYEVENT_LOG}) { |
1349 | require AnyEvent::Log; # AnyEvent::Log does the thing for us |
1344 | require AnyEvent::Log; # AnyEvent::Log does the thing for us |
1350 | } |
1345 | } |