Add a new log level: SQL.

This sits between NOTICE and INFO, allowing to have a complete log of
the SQL queries sent to the server while avoiding the very verbose
trafic of the DEBUG log level.

See #498.
This commit is contained in:
Dimitri Fontaine 2017-01-03 22:27:17 +01:00
parent 4931604361
commit 381ba18b50
5 changed files with 9 additions and 6 deletions

View File

@ -126,7 +126,7 @@
(defmethod query ((pgconn pgsql-connection) sql &key)
(let ((pomo:*database* (conn-handle pgconn)))
(log-message :debug "~a" sql)
(log-message :sql "~a" sql)
(pomo:query sql)))
(defmacro handling-pgsql-notices (&body forms)
@ -254,7 +254,7 @@
(loop :for sql :in (alexandria::ensure-list sql)
:do (progn
(log-message :notice "~a" sql)
(log-message :sql "~a" sql)
(pomo:execute sql)))
(when client-min-messages

View File

@ -34,12 +34,13 @@
(defmethod query ((msconn mssql-connection) sql &key)
"Send SQL query to MSCONN connection."
(log-message :sql "MSSQL: sending query: ~a" query)
(mssql:query sql :connection (conn-handle msconn)))
(defun mssql-query (query)
"Execute given QUERY within the current *connection*, and set proper
defaults for pgloader."
(log-message :debug "MSSQL: sending query: ~a" query)
(log-message :sql "MSSQL: sending query: ~a" query)
(mssql:query query :connection (conn-handle *mssql-db*)))

View File

@ -60,7 +60,7 @@
(defun mysql-query (query &key row-fn (as-text t) (result-type 'list))
"Execute given QUERY within the current *connection*, and set proper
defaults for pgloader."
(log-message :debug "MySQL: sending query: ~a" query)
(log-message :sql "MySQL: sending query: ~a" query)
(qmynd:mysql-query (conn-handle *connection*) query
:row-fn row-fn
:as-text as-text

View File

@ -30,6 +30,7 @@
(change-class (call-next-method slconn) 'sqlite-connection))
(defmethod query ((slconn sqlite-connection) sql &key)
(log-message :sql "SQLite: sending query: ~a" sql)
(sqlite:execute-to-list (conn-handle slconn) sql))

View File

@ -9,8 +9,9 @@
(defcategory :error (or :error :log))
(defcategory :warning (or :warning :error))
(defcategory :notice (or :notice :warning))
(defcategory :info (or :info :notice))
(defcategory :debug (or :debug :info))
(defcategory :sql (or :sql :notice))
(defcategory :info (or :info :sql))
(defcategory :debug (or :debug :sql))
(defcategory :data (or :data :debug))
(defvar *log-messengers* nil