[Catalyst] Problem with $c->log always on

Matt S Trout dbix-class at trout.me.uk
Wed Sep 13 03:05:05 CEST 2006

Nate Wiger wrote:
> Matt S Trout wrote:
>> Nate Wiger wrote:
>>> It looks like $c->log is always on in a given Catalyst plugin. I have 
>>> simple, standard code like this:
>>>     $c->log->debug("some message");
>>>     $c->log->debug(Dumper(\%hash)) if $c->log->is_debug;
>>> When I dump out the $c->log->is*, all of them return true (actually, 
>>> 1/4/16 depending on the level, I assume this is a bitmask byproduct).
>>> Any ideas? Anyone else seen this? I even double-checked my classes to 
>>> make sure they aren't overriding it...
>> Log level config is separate from debug mode.
>> __PACKAGE__->log(Catalyst::Log->new(@levels));
>> or
>> $c->log->debug(...) if $c->debug; # this is what the Cat internals do
> Ok, perhaps I'm a bit confused... reading the Catalyst::Log manpage, it 
> seems I should just be able to write this:
>     $c->log->whatever_level("message");
> And it will/won't be shown depending on the runtime level config. Is 
> that correct?

Yes, but you've shown nothing indicating you've altered the runtime level 
config from "all levels" which is the default.

$c->log->is_debug is determined by the logging config. Whether the app is in 
debug mode is nothing to do with that, that's reflected by $c->debug as I said.

      Matt S Trout       Offering custom development, consultancy and support
   Technical Director    contracts for Catalyst, DBIx::Class and BAST. Contact
Shadowcat Systems Ltd.  mst (at) shadowcatsystems.co.uk for more information

+ Help us build a better perl ORM: http://dbix-class.shadowcatsystems.co.uk/ +

More information about the Catalyst mailing list