diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php
index b4c1a72e1c..230c9c8ed7 100644
--- a/phpBB/includes/db/dbal.php
+++ b/phpBB/includes/db/dbal.php
@@ -662,12 +662,7 @@ class dbal
// The DEBUG_EXTRA constant is for development only!
if ((isset($auth) && $auth->acl_get('a_')) || defined('IN_INSTALL') || defined('DEBUG_EXTRA'))
{
- // Print out a nice backtrace...
- $backtrace = get_backtrace();
-
$message .= ($sql) ? '
SQL
' . htmlspecialchars($sql) : '';
- $message .= ($backtrace) ? '
BACKTRACE
' . $backtrace : '';
- $message .= '
';
}
else
{
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 852fc683f2..1eefaee651 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -3853,11 +3853,23 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
}
}
+ $log_text = $msg_text;
+ $backtrace = get_backtrace();
+ if ($backtrace)
+ {
+ $log_text .= '
BACKTRACE
' . $backtrace;
+ }
+
+ if (defined('IN_INSTALL') || defined('DEBUG_EXTRA') || isset($auth) && $auth->acl_get('a_'))
+ {
+ $msg_text = $log_text;
+ }
+
if ((defined('DEBUG') || defined('IN_CRON') || defined('IMAGE_OUTPUT')) && isset($db))
{
// let's avoid loops
$db->sql_return_on_error(true);
- add_log('critical', 'LOG_GENERAL_ERROR', $msg_title, $msg_text);
+ add_log('critical', 'LOG_GENERAL_ERROR', $msg_title, $log_text);
$db->sql_return_on_error(false);
}