Allow first argument to logger to be string or subroutine

Bug #1824181 reported by John Merriam on 2019-04-10
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenSRF
Undecided
Unassigned

Bug Description

This simple change allows the $msg passed to _log_message in Logger.pm to be either a regular string or a delayed exec subroutine. This is in reaction to LP1823338 where a slow debug logging statement was slowing down SIP checkins even though debug logging was not turned on.

With this change you can take this:

$log->debug("Available methods\n\t".join("\n\t", keys %{ $_METHODS[$proto] }), INTERNAL);

and change it to this:

$log->debug(sub{return "Available methods\n\t".join("\n\t", keys %{ $_METHODS[$proto] }) }, INTERNAL);

and then that slow debug logging line will not be executed unless debug logging is turned on.

Branch to follow.

John Merriam (jmerriam) wrote :
tags: added: pullrequest
John Merriam (jmerriam) wrote :

LP1824184 https://bugs.launchpad.net/opensrf/+bug/1824184
is the followup to this where we actually start making use of it.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers