Make MySQL query logging optional
* lib/databases/mysql: Wrap query log configuration in a check for a
ENABLE_QUERY_LOGGING variable.
* stackrc: Add the DATABASE_QUERY_LOGGING variable defaulted to True.
Change-Id: Iddf8538ad0a1e36e2c6944dc70315984026c8245
diff --git a/lib/databases/mysql b/lib/databases/mysql
index 0eb8fdd..476b4b9 100644
--- a/lib/databases/mysql
+++ b/lib/databases/mysql
@@ -87,20 +87,25 @@
default-storage-engine = InnoDB" $MY_CONF
fi
- # Turn on slow query log
- sudo sed -i '/log.slow.queries/d' $MY_CONF
- sudo sed -i -e "/^\[mysqld\]/ a \
-log-slow-queries = /var/log/mysql/mysql-slow.log" $MY_CONF
+ if [[ "$DATABASE_QUERY_LOGGING" == "True" ]]; then
+ echo_summary "Enabling MySQL query logging"
- # Log all queries (any query taking longer than 0 seconds)
- sudo sed -i '/long.query.time/d' $MY_CONF
- sudo sed -i -e "/^\[mysqld\]/ a \
-long-query-time = 0" $MY_CONF
+ # Turn on slow query log
+ sudo sed -i '/log.slow.queries/d' $MY_CONF
+ sudo sed -i -e "/^\[mysqld\]/ a \
+ log-slow-queries = /var/log/mysql/mysql-slow.log" $MY_CONF
- # Log all non-indexed queries
- sudo sed -i '/log.queries.not.using.indexes/d' $MY_CONF
- sudo sed -i -e "/^\[mysqld\]/ a \
-log-queries-not-using-indexes" $MY_CONF
+ # Log all queries (any query taking longer than 0 seconds)
+ sudo sed -i '/long.query.time/d' $MY_CONF
+ sudo sed -i -e "/^\[mysqld\]/ a \
+ long-query-time = 0" $MY_CONF
+
+ # Log all non-indexed queries
+ sudo sed -i '/log.queries.not.using.indexes/d' $MY_CONF
+ sudo sed -i -e "/^\[mysqld\]/ a \
+ log-queries-not-using-indexes" $MY_CONF
+
+ fi
restart_service $MYSQL
}
diff --git a/stackrc b/stackrc
index 49fb26b..276ce33 100644
--- a/stackrc
+++ b/stackrc
@@ -59,6 +59,9 @@
source $RC_DIR/.localrc.auto
fi
+# This can be used to turn database query logging on and off
+# (currently only implemented for MySQL backend)
+DATABASE_QUERY_LOGGING=$(trueorfalse True $DATABASE_QUERY_LOGGING)
# Repositories
# ------------