# This file documents the revision history for Perl extension Catalyst.
+5.90053 - 2013-12-21
+ - Reverted a change in the previous release that moved the setup_log phase
+ to after setup_config. This change was made to allow people to use
+ configuration that is late loaded (such as via the ConfigLoader Plugin)
+ to setup the plugin. However it also broke the ability to use the log
+ during plugin setup (ie, it breaks lots of plugins). Reverting the
+ change. See Catalyst::Delta for workarounds.
+
5.90052 - 2013-12-18
- Fixed first block of startup debug messages missing when using a custom
# Remember to update this in Catalyst::Runtime as well!
-our $VERSION = '5.90052';
+our $VERSION = '5.90053';
sub import {
my ( $class, @arguments ) = @_;
$class->setup_home( delete $flags->{home} );
+ $class->setup_log( delete $flags->{log} );
$class->setup_plugins( delete $flags->{plugins} );
# Call plugins setup, this is stupid and evil.
$class->setup unless $Catalyst::__AM_RESTARTING;
}
- $class->setup_log( delete $flags->{log} );
$class->setup_middleware();
$class->setup_data_handlers();
$class->setup_dispatcher( delete $flags->{dispatcher} );
This is an overview of the user-visible changes to Catalyst between major Catalyst releases.
+=head2 VERSION 5.90053
+
+We are now clarifying the behavior of log, plugins and configuration during
+the setup phase. Since Plugins might require a log during setup, setup_log
+must run BEFORE setup_plugins. This has the unfortunate side effect that
+anyone using the popular ConfigLoader plugin will not be able to supply
+configuration to custom logs since the configuration is not yet finalized
+when setup_log is run (when using ConfigLoader, which is a plugin and is
+not loaded until later.)
+
+As a workaround, you can supply custom log configuration directly into
+the configuration:
+
+ package MyApp;
+ use Catalyst;
+
+ __PACKAGE__->config(
+ my_custom_log_info => { %custom_args },
+ );
+
+ __PACKAGE__->setup;
+
+If you wish to configure the custom logger differently based on ENV, you can
+try:
+
+ package MyApp;
+
+ use Catalyst;
+ use Catalyst::Utils;
+
+ __PACKAGE__->config(
+ Catalyst::Utils::merge_hashes(
+ +{ my_custom_log_info => { %base_custom_args } },
+ +{ do __PACKAGE__->path_to( $ENV{WHICH_CONF}."_conf.pl") },
+ ),
+ );
+
+ __PACKAGE__->setup;
+
+Or create a standalone Configuration class that does the right thing.
+
+Basically if you want to configure a logger via Catalyst global configuration
+you can't use ConfigLoader because it will always be loaded too late to be of
+any use. Patches and workaround options welcomed!
+
=head2 VERSION 5.9XXXX 'cataplack'
The Catalyst::Engine sub-classes have all been removed and deprecated,