@@ -, +, @@ --- debian/templates/plack.psgi | 64 ++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 25 deletions(-) --- a/debian/templates/plack.psgi +++ a/debian/templates/plack.psgi @@ -36,9 +36,7 @@ use Koha::Caches; use Koha::Cache::Memory::Lite; use Koha::Database; use Koha::DateUtils; -use Koha::Logger; -use Log::Log4perl; use CGI qw(-utf8 ); # we will loose -utf8 under plack, otherwise { no warnings 'redefine'; @@ -67,8 +65,6 @@ my $apiv1 = builder { $server->to_psgi_app; }; -Koha::Logger->_init; - builder { enable "ReverseProxy"; enable "Plack::Middleware::Static"; @@ -77,25 +73,43 @@ builder { enable "+Koha::Middleware::SetEnv"; enable "+Koha::Middleware::RealIP"; - mount '/opac' => builder { - if ( Log::Log4perl->get_logger('plack-opac')->has_appenders ){ - enable 'Log4perl', category => 'plack-opac'; - enable 'LogWarn'; - } - $opac; - }; - mount '/intranet' => builder { - if ( Log::Log4perl->get_logger('plack-intranet')->has_appenders ){ - enable 'Log4perl', category => 'plack-intranet'; - enable 'LogWarn'; - } - $intranet; - }; - mount '/api/v1/app.pl' => builder { - if ( Log::Log4perl->get_logger('plack-api')->has_appenders ){ - enable 'Log4perl', category => 'plack-api'; - enable 'LogWarn'; - } - $apiv1; - }; + enable 'ErrorDocument', 500, '/errors', subrequest => 1; + enable 'StackTrace', no_print_errors => 1; + + mount '/opac' => $opac; + mount '/intranet' => $intranet; + mount '/api/v1/app.pl' => $apiv1; + + mount '/errors' => sub { + my $env = shift; + + use CGI qw ( -utf8 ); + use C4::Auth; + use C4::Output; + use C4::Context; + + my $query = CGI->new; + my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => 'errors/errorpage.tt', + query => $query, + type => 'intranet', + authnotrequired => 1, + debug => 1, + } + ); + $template->param ( + errno => 500, + admin => C4::Context->preference('KohaAdminEmailAddress'), + ); + my $output = $template->output; + my $length = length($output); + + return [ + 200, + ['Content-Type' => 'text/html; charset=UTF-8', 'Content-Length' => $length], + [$output] + ]; + }; + }; --