If a watchdog entry should be written during a different MySQL table is locked it will fail with MySQL error "Table 'watchdog' was not locked with LOCK TABLES". If a watchdog entry should be written during an open transaction and the transaction will be rolled back, the watchdog entry will be removed as well. Both cases could be avoided if we use a dedicated database connection for writing watchdog entries.
The solution is to declare a dedicated database connection which will not be established until required.
If a watchdog entry is written as part of a transaction it should probably be rolled back with that transaction. But for entries of severity WATCHDOG_ERROR or above we should assume that they should be always written. But his behavior has to be optionally configurable in settings.php.
Original issue: https://drupal.org/node/298768
Recent comments
I have had a read of what Lando provides, and it's an excellent development tool, and it would solve the problem. But, I would prefer to find out why the problem is there in the first...
How often is the settings.php loaded.
Thanks for the info. I will give it a try...
How often is the settings.php loaded.
I use Lando (a wrapper for docker) and find settings changes happen straight away
How often is the settings.php loaded.