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::Package

    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 in "args".

        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 precall*logger, 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.

