dovecot-2.2: cassandra: Added log_level parameter to connect_str...
dovecot at dovecot.org
dovecot at dovecot.org
Fri May 29 16:14:07 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/315adb25e6b4
changeset: 18761:315adb25e6b4
user: Timo Sirainen <tss at iki.fi>
date: Fri May 29 19:11:50 2015 +0300
description:
cassandra: Added log_level parameter to connect_string.
Available values are critical, error, warn (default), info, debug and trace.
diffstat:
src/lib-sql/driver-cassandra.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diffs (77 lines):
diff -r 83f1b9956788 -r 315adb25e6b4 src/lib-sql/driver-cassandra.c
--- a/src/lib-sql/driver-cassandra.c Fri May 29 18:22:17 2015 +0300
+++ b/src/lib-sql/driver-cassandra.c Fri May 29 19:11:50 2015 +0300
@@ -30,6 +30,7 @@
char *hosts, *keyspace;
CassConsistency consistency;
+ CassLogLevel log_level;
CassCluster *cluster;
CassSession *session;
@@ -102,6 +103,18 @@
{ CASS_CONSISTENCY_LOCAL_ONE, "local-one" }
};
+static struct {
+ CassLogLevel log_level;
+ const char *name;
+} cass_log_level_names[] = {
+ { CASS_LOG_CRITICAL, "critical" },
+ { CASS_LOG_ERROR, "error" },
+ { CASS_LOG_WARN, "warn" },
+ { CASS_LOG_INFO, "info" },
+ { CASS_LOG_DEBUG, "debug" },
+ { CASS_LOG_TRACE, "trace" }
+};
+
static void result_finish(struct cassandra_result *result);
static int consistency_parse(const char *str, CassConsistency *consistency_r)
@@ -117,6 +130,19 @@
return -1;
}
+static int log_level_parse(const char *str, CassLogLevel *log_level_r)
+{
+ unsigned int i;
+
+ for (i = 0; i < N_ELEMENTS(cass_log_level_names); i++) {
+ if (strcmp(cass_log_level_names[i].name, str) == 0) {
+ *log_level_r = cass_log_level_names[i].log_level;
+ return 0;
+ }
+ }
+ return -1;
+}
+
static void driver_cassandra_set_state(struct cassandra_db *db, enum sql_db_state state)
{
i_assert(state == SQL_DB_STATE_BUSY || db->cur_result == NULL);
@@ -304,6 +330,8 @@
const char *const *args, *key, *value;
string_t *hosts = t_str_new(64);
+ db->log_level = CASS_LOG_WARN;
+
args = t_strsplit_spaces(connect_string, " ");
for (; *args != NULL; args++) {
value = strchr(*args, '=');
@@ -325,6 +353,9 @@
if (consistency_parse(value, &db->consistency) < 0)
i_fatal("cassandra: Unknown consistency: %s", value);
db->set_consistency = TRUE;
+ } else if (strcmp(key, "log_level") == 0) {
+ if (log_level_parse(value, &db->log_level) < 0)
+ i_fatal("cassandra: Unknown log_level: %s", value);
} else {
i_fatal("cassandra: Unknown connect string: %s", key);
}
@@ -348,6 +379,7 @@
T_BEGIN {
driver_cassandra_parse_connect_string(db, connect_string);
} T_END;
+ cass_log_set_level(db->log_level);
db->cluster = cass_cluster_new();
cass_cluster_set_connect_timeout(db->cluster, SQL_CONNECT_TIMEOUT_SECS * 1000);
More information about the dovecot-cvs
mailing list