X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FLog.pm;fp=lib%2FCatalyst%2FLog.pm;h=4fd3ef0eda901d7b26337f015548a98598d50fbc;hp=7d7fa5fa57ebff65c748730b0beb1bf377807ac3;hb=bb7d3f91467380125e331f571f5151f77e0ef498;hpb=4476dedf297994299104b48230ff6a2a4d3d6003 diff --git a/lib/Catalyst/Log.pm b/lib/Catalyst/Log.pm index 7d7fa5f..4fd3ef0 100644 --- a/lib/Catalyst/Log.pm +++ b/lib/Catalyst/Log.pm @@ -61,14 +61,26 @@ sub psgienv { } } -around new => sub { - my $orig = shift; +sub BUILDARGS { my $class = shift; - my $self = $class->$orig; + my $args; - $self->levels( scalar(@_) ? @_ : keys %LEVELS ); + if (@_ == 1 && ref $_[0] eq 'HASH') { + $args = $_[0]; + } + else { + $args = { + levels => [@_ ? @_ : keys %LEVELS], + }; + } - return $self; + if (delete $args->{levels}) { + my $level = 0; + $level |= $_ + for map $LEVEL_MATCH{$_}, @_ ? @_ : keys %LEVELS; + $args->{level} = $level; + } + return $args; }; sub levels { @@ -162,7 +174,7 @@ $meta->add_before_method_modifier('body', sub { # End 5.70 backwards compatibility hacks. no Moose; -__PACKAGE__->meta->make_immutable(inline_constructor => 0); +__PACKAGE__->meta->make_immutable; 1;