NAME Mojolicious::Plugin::Logf - Plugin for logging datastructures using sprintf VERSION 0.03 DESCRIPTION Mojolicious::Plugin::Logf is a plugin which will log complex datastructures and avoid "unitialized" warnings. This plugin use Mojo::Log or whatever "log" in Mojo is set to, to do the actual logging. SYNOPSIS use Mojolicious::Lite; plugin "Logf"; get "/" => sub { my $self = shift; $self->logf(info => 'request: %s', $self->req->params->to_hash); }; HELPERS logf $self = $c->logf; $c = $c->logf($level => $format, @args); Logs a string formatted by the usual "printf" conventions of the C library function "sprintf". $level need to be a valid Mojo::Log level. @args will be converted using "flatten". Calling this method without any arguments will return $self (an instance of this plugin), allowing you to call "flatten": @args_as_strings = $c->logf->flatten(@args); METHODS flatten @args_as_strings = $self->flatten(@args); Used to convert input @args using these rules: * Scalar No rule applied. * Object with string overloading Will be coverted to a string using the string overloading function. * Data structure or object Will be serialized using Data::Dumper with these settings: $Data::Dumper::Indent = 0; $Data::Dumper::Maxdepth = $Data::Dumper::Maxdepth || 2; $Data::Dumper::Sortkeys = 1; $Data::Dumper::Terse = 1; NOTE! These settings might change, but will always do its best to serialize the object into one line. $Data::Dumper::Maxdepth is used to avoid dumping large nested objects. Set this variable if you need deeper logging. Example: local $Data::Dumper::Maxdepth = 1000; $c->logf(info => 'Deep structure: %s', $some_object); * Undefined value Will be logged as "__UNDEF__". register Will register the "logf" helper in the application COPYRIGHT AND LICENSE Copyright (C) 2014, Jan Henning Thorsen This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0. AUTHOR Jan Henning Thorsen - "jhthorsen@cpan.org"