Еще для прозрачности очень хорошо не вызывать из кода сразу sql операторы, а сделать прослойку в виде своей библиотеки функций для обращения к базе, тогда можно все запросы писать в логи прямо в виде SQL операторов (CREATE, ALTER, UPDATE, DELETE, INSERT...), в таком виде журнал очень удобно править, резать на части, и загружать в базу. Если каждый день логи будут писаться в отдельный файл, то вообще удобно: для бекапа и восстановления, для синхронизации с другой базой, для понимания какие и сколько запросов делает система, ну и для оптимизации рекомендую туда еще время исполнения писать, чтобы можно было выделить долгие запросы. В MySQL есть конечно встроенное средство логирования, в /etc/mysql/my.cnf есть строка «log = /var/log/mysql/mysql.log» и она обычно закоментирована. Если ее откоментить, то логироваться будет не отдельный проект, а все базы данных на сервере. Можно логировать только медленные запросы «slow-queries=sloq.log». Про бинарные логи уже говорили и они хороши тем, что можно выбрать какую базу логировать. Но я предпочитаю писать логи самому, т.к. можно над ними делать какие-то еще операции дополнительные, например, парсать и анализировать, строить статистику, определять ошибки и предпринимать что-то, в общем, для прозрачности — нужна своя прослойка, а вызывать PDO или mysql_query прямо из кода программ считаю плохим тоном. Даже если ничего у Вас не навешено сейчас, но в любой момент Вы можете захотеть навесить что-либо, поверьте, когда ситеме пару лет и в ней тысячи файлов, то для сточного исправления проблемы или поиска ошибки такое логирование не заменимо. Даже иногда, в виде временной заплаты можно делать коррекцию SQL операторов перед их исполнением.