summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2017-10-06 04:20:37 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2017-10-10 23:21:06 +0200
commit6c1950e1f37b290f504a288c22eb2c5256cbacdf (patch)
treeaca673bfffedc0a8c9acf044face24ff9808426a
parent40aa61ccf0e45df0d7e1d58521a118d4c5a953ee (diff)
cosmetic: don't log about missing SQLite log cb
SQLite3 seems to be commonly compiled without log callback support. It is then misleading to see a seeming error message about this on each osmo-hlr startup. Avoid the impression that we would miss out on important logging: query sqlit3_compileoption_get() whether SQLITE_CONFIG_SQLLOG is enabled. Try to register the callback only if present, if not, say so on DEBUG log. See https://sqlite.org/compile.html "SQLITE_ENABLE_SQLLOG" Change-Id: I78d75dc351eb587b0a022f82f147e9a31c0324c5
-rw-r--r--src/db.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/db.c b/src/db.c
index 2c10ba0..f7cbc94 100644
--- a/src/db.c
+++ b/src/db.c
@@ -21,6 +21,7 @@
#include <stdbool.h>
#include <sqlite3.h>
+#include <string.h>
#include "logging.h"
#include "db.h"
@@ -121,6 +122,7 @@ struct db_context *db_open(void *ctx, const char *fname)
struct db_context *dbc = talloc_zero(ctx, struct db_context);
unsigned int i;
int rc;
+ bool has_sqlite_config_sqllog = false;
LOGP(DDB, LOGL_NOTICE, "using database: %s\n", fname);
LOGP(DDB, LOGL_INFO, "Compiled against SQLite3 lib version %s\n", SQLITE_VERSION);
@@ -133,15 +135,21 @@ struct db_context *db_open(void *ctx, const char *fname)
if (!o)
break;
LOGP(DDB, LOGL_DEBUG, "SQlite3 compiled with '%s'\n", o);
+ if (!strcmp(o, "ENABLE_SQLLOG"))
+ has_sqlite_config_sqllog = true;
}
rc = sqlite3_config(SQLITE_CONFIG_LOG, sql3_error_log_cb, NULL);
if (rc != SQLITE_OK)
LOGP(DDB, LOGL_NOTICE, "Unable to set SQlite3 error log callback\n");
- rc = sqlite3_config(SQLITE_CONFIG_SQLLOG, sql3_sql_log_cb, NULL);
- if (rc != SQLITE_OK)
- LOGP(DDB, LOGL_NOTICE, "Unable to set SQlite3 SQL statement log callback\n");
+ if (has_sqlite_config_sqllog) {
+ rc = sqlite3_config(SQLITE_CONFIG_SQLLOG, sql3_sql_log_cb, NULL);
+ if (rc != SQLITE_OK)
+ LOGP(DDB, LOGL_NOTICE, "Unable to set SQlite3 SQL log callback\n");
+ } else
+ LOGP(DDB, LOGL_DEBUG, "Not setting SQL log callback:"
+ " SQLite3 compiled without support for it\n");
rc = sqlite3_open(dbc->fname, &dbc->db);
if (rc != SQLITE_OK) {