NAME
Log::Any::For::Class - Add logging to class
VERSION
version 0.08
SYNOPSIS
use Log::Any::For::Class qw(add_logging_to_class);
add_logging_to_class(classes => [qw/My::Class My::SubClass/]);
# now method calls to your classes are logged, by default at level 'trace'
CREDITS
Some code portion taken from Devel::TraceMethods.
SEE ALSO
Log::Any::For::DBI, an application of this module.
DESCRIPTION
This module has Rinci metadata.
FUNCTIONS
None are exported by default, but they are exportable.
add_logging_to_class(%args) -> any
Add logging to class.
Logging will be done using Log::Any.
Currently this function adds logging around method calls, e.g.:
-> Class::method(...)
<- Class::method() = RESULT
...
Arguments ('*' denotes required arguments):
classes* => array
Classes to add logging to.
filter_args => code
Filter for @_.
Filter arguments to log. The default is to log @ as is. Code will be given a hashref argument \%args containing these keys:
args(arrayref, a shallow copy of the original @). Code is expected to filter out unwanted stuffs inargs.This is usually used to filter out long object or data, e.g. replace it with
(object),..., or whatever.If unspecified, the default filter is used. The default filter does replace objects with '( object)'.
filter_methods => array
Filter methods to add logging to.
The default is to add logging to all non-private methods. Private methods are those prefixed by
_.postcall_logger => code
Supply custom postcall logger.
Just like precalllogger, but code will be called after method is call. Code will be given a hashref argument \%args containing these keys:
args(arrayref, a shallow copy of the original @),orig(coderef, the original method),name(string, the fully-qualified method name),result(arrayref, the method result).You can use this mechanism to customize logging.
precall_logger => code
Supply custom precall logger.
Code will be called when logging method call. Code will be given a hashref argument \%args containing these keys:
args(arrayref, a shallow copy of the original @_),orig(coderef, the original method),name(string, the fully-qualified method name).You can use this mechanism to customize logging.
Return value:
AUTHOR
Steven Haryanto <stevenharyanto@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.