X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FLog.pm;h=85613e3dd1790210e584b2b528018fde334b9500;hb=cae5df2cd085e4e4e2a1aca25e9842df4ea1519f;hp=b834a79d865c6803c85c8e2fd80e93b279de9aee;hpb=dd5b1dc47018c241cafda7f2b565d6a39257a1bf;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Log.pm b/lib/Catalyst/Log.pm old mode 100644 new mode 100755 index b834a79..85613e3 --- a/lib/Catalyst/Log.pm +++ b/lib/Catalyst/Log.pm @@ -13,6 +13,7 @@ our %LEVEL_MATCH = (); # Stored as additive, thus debug = 31, warn = 30 etc has level => (is => 'rw'); has _body => (is => 'rw'); has abort => (is => 'rw'); +has autoflush => (is => 'rw'); has _psgi_logger => (is => 'rw', predicate => '_has_psgi_logger', clearer => '_clear_psgi_logger'); has _psgi_errors => (is => 'rw', predicate => '_has_psgi_errors', clearer => '_clear_psgi_errors'); @@ -118,6 +119,9 @@ sub _log { $body .= sprintf( "[%s] %s", $level, $message ); $self->_body($body); } + if( $self->autoflush && !$self->abort ) { + $self->_flush; + } } sub _flush { @@ -284,6 +288,14 @@ to use Log4Perl or another logger, you should call it like this: $c->log->abort(1) if $c->log->can('abort'); +=head2 autoflush + +When enabled, messages are written to the log immediately instead of queued +until the end of the request. By default, autoflush is enabled during setup, +but turned back off thereafter. This is done purely for legacy support, +specifically for L, and may be changed in +the future. + =head2 _send_to_log $log->_send_to_log( @messages );