mirror of
https://github.com/nextcloud/server.git
synced 2026-02-19 02:38:40 -05:00
feat(db): Make dirty query logging available in production
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
parent
063c051cdc
commit
911ab393c0
2 changed files with 18 additions and 1 deletions
|
|
@ -994,6 +994,15 @@ $CONFIG = [
|
|||
*/
|
||||
'loglevel_frontend' => 2,
|
||||
|
||||
/**
|
||||
* Loglevel used by the dirty database query detection. Useful to identify
|
||||
* potential database bugs in production. Set this to loglevel or higher to
|
||||
* see dirty queries in the logs.
|
||||
*
|
||||
* Defaults to ``0`` (debug)
|
||||
*/
|
||||
'loglevel_dirty_database_queries' => 0,
|
||||
|
||||
/**
|
||||
* If you maintain different instances and aggregate the logs, you may want
|
||||
* to distinguish between them. ``syslog_tag`` can be set per instance
|
||||
|
|
|
|||
|
|
@ -276,7 +276,15 @@ class Connection extends PrimaryReadReplicaConnection {
|
|||
} else {
|
||||
// Read to a table that has been written to previously
|
||||
// While this might not necessarily mean that we did a read after write it is an indication for a code path to check
|
||||
$this->logger->debug('dirty table reads: ' . $sql, ['tables' => $this->tableDirtyWrites, 'reads' => $tables, 'exception' => new \Exception()]);
|
||||
$this->logger->log(
|
||||
(int) ($this->systemConfig->getValue('loglevel_dirty_database_queries', null) ?? 0),
|
||||
'dirty table reads: ' . $sql,
|
||||
[
|
||||
'tables' => $this->tableDirtyWrites,
|
||||
'reads' => $tables,
|
||||
'exception' => new \Exception(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
$sql = $this->replaceTablePrefix($sql);
|
||||
|
|
|
|||
Loading…
Reference in a new issue