Browse code

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

Jeremy Stanley authored on 2014/01/25 10:10:31
Showing 2 changed files
... ...
@@ -87,20 +87,25 @@ function configure_database_mysql {
87 87
 default-storage-engine = InnoDB" $MY_CONF
88 88
     fi
89 89
 
90
-    # Turn on slow query log
91
-    sudo sed -i '/log.slow.queries/d' $MY_CONF
92
-    sudo sed -i -e "/^\[mysqld\]/ a \
93
-log-slow-queries = /var/log/mysql/mysql-slow.log" $MY_CONF
94
-
95
-    # Log all queries (any query taking longer than 0 seconds)
96
-    sudo sed -i '/long.query.time/d' $MY_CONF
97
-    sudo sed -i -e "/^\[mysqld\]/ a \
98
-long-query-time = 0" $MY_CONF
99
-
100
-    # Log all non-indexed queries
101
-    sudo sed -i '/log.queries.not.using.indexes/d' $MY_CONF
102
-    sudo sed -i -e "/^\[mysqld\]/ a \
103
-log-queries-not-using-indexes" $MY_CONF
90
+    if [[ "$DATABASE_QUERY_LOGGING" == "True" ]]; then
91
+        echo_summary "Enabling MySQL query logging"
92
+
93
+        # Turn on slow query log
94
+        sudo sed -i '/log.slow.queries/d' $MY_CONF
95
+        sudo sed -i -e "/^\[mysqld\]/ a \
96
+            log-slow-queries = /var/log/mysql/mysql-slow.log" $MY_CONF
97
+
98
+        # Log all queries (any query taking longer than 0 seconds)
99
+        sudo sed -i '/long.query.time/d' $MY_CONF
100
+        sudo sed -i -e "/^\[mysqld\]/ a \
101
+            long-query-time = 0" $MY_CONF
102
+
103
+        # Log all non-indexed queries
104
+        sudo sed -i '/log.queries.not.using.indexes/d' $MY_CONF
105
+        sudo sed -i -e "/^\[mysqld\]/ a \
106
+            log-queries-not-using-indexes" $MY_CONF
107
+
108
+    fi
104 109
 
105 110
     restart_service $MYSQL
106 111
 }
... ...
@@ -59,6 +59,9 @@ elif [[ -f $RC_DIR/.localrc.auto ]]; then
59 59
     source $RC_DIR/.localrc.auto
60 60
 fi
61 61
 
62
+# This can be used to turn database query logging on and off
63
+# (currently only implemented for MySQL backend)
64
+DATABASE_QUERY_LOGGING=$(trueorfalse True $DATABASE_QUERY_LOGGING)
62 65
 
63 66
 # Repositories
64 67
 # ------------