src/go/plugin/go.d/modules/mysql/disable_logging.go
// SPDX-License-Identifier: GPL-3.0-or-later
package mysql
const (
queryShowSessionVariables = `
SHOW SESSION VARIABLES
WHERE
Variable_name LIKE 'sql_log_off'
OR Variable_name LIKE 'slow_query_log';`
)
const (
queryDisableSessionQueryLog = "SET SESSION sql_log_off='ON';"
queryDisableSessionSlowQueryLog = "SET SESSION slow_query_log='OFF';"
)
func (m *MySQL) disableSessionQueryLog() {
q := queryShowSessionVariables
m.Debugf("executing query: '%s'", q)
var sqlLogOff, slowQueryLog string
var name string
_, err := m.collectQuery(q, func(column, value string, _ bool) {
switch column {
case "Variable_name":
name = value
case "Value":
switch name {
case "sql_log_off":
sqlLogOff = value
case "slow_query_log":
slowQueryLog = value
}
}
})
if err != nil {
m.Debug(err)
return
}
if sqlLogOff == "OFF" && m.doDisableSessionQueryLog {
// requires SUPER privileges
q = queryDisableSessionQueryLog
m.Debugf("executing query: '%s'", q)
if _, err := m.collectQuery(q, func(_, _ string, _ bool) {}); err != nil {
m.Infof("failed to disable session query log (sql_log_off): %v", err)
m.doDisableSessionQueryLog = false
}
}
if slowQueryLog == "ON" {
q = queryDisableSessionSlowQueryLog
m.Debugf("executing query: '%s'", q)
if _, err := m.collectQuery(q, func(_, _ string, _ bool) {}); err != nil {
m.Debugf("failed to disable session slow query log (slow_query_log): %v", err)
}
}
}