diff options
author | Sage Weil <sage@inktank.com> | 2013-05-06 14:13:50 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-05-08 16:55:02 -0700 |
commit | bb4f65ae9c729d8ceed8b8eb2bc640fe0299434d (patch) | |
tree | 6161a09ad5561feb02db434ccddb4b6f052aaa2a | |
parent | a284c9ece85f11d020d492120be66a9f4c997416 (diff) | |
download | ceph-bb4f65ae9c729d8ceed8b8eb2bc640fe0299434d.tar.gz |
mon: allow leveldb logging
'mon leveldb log = filename'
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit c1d5f815546b731e10bfcb81cbcd48b7d432e9c4)
-rw-r--r-- | src/common/config_opts.h | 1 | ||||
-rw-r--r-- | src/mon/MonitorDBStore.h | 1 | ||||
-rw-r--r-- | src/os/LevelDBStore.cc | 5 | ||||
-rw-r--r-- | src/os/LevelDBStore.h | 3 |
4 files changed, 10 insertions, 0 deletions
diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 02ceda5703e..e69de24c598 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -190,6 +190,7 @@ OPTION(mon_leveldb_bloom_size, OPT_INT, 0) // monitor's leveldb bloom bits per e OPTION(mon_leveldb_max_open_files, OPT_INT, 0) // monitor's leveldb max open files OPTION(mon_leveldb_compression, OPT_BOOL, false) // monitor's leveldb uses compression OPTION(mon_leveldb_paranoid, OPT_BOOL, false) // monitor's leveldb paranoid flag +OPTION(mon_leveldb_log, OPT_STR, "") OPTION(paxos_stash_full_interval, OPT_INT, 25) // how often (in commits) to stash a full copy of the PaxosService state OPTION(paxos_max_join_drift, OPT_INT, 10) // max paxos iterations before we must first sync the monitor stores OPTION(paxos_propose_interval, OPT_DOUBLE, 1.0) // gather updates for this long before proposing a map update diff --git a/src/mon/MonitorDBStore.h b/src/mon/MonitorDBStore.h index 9dc255c7ba7..a138670df67 100644 --- a/src/mon/MonitorDBStore.h +++ b/src/mon/MonitorDBStore.h @@ -511,6 +511,7 @@ class MonitorDBStore db->options.compression_enabled = g_conf->mon_leveldb_compression; db->options.max_open_files = g_conf->mon_leveldb_max_open_files; db->options.paranoid_checks = g_conf->mon_leveldb_paranoid; + db->options.log_file = g_conf->mon_leveldb_log; } MonitorDBStore(LevelDBStore *db_ptr) { db.reset(db_ptr); diff --git a/src/os/LevelDBStore.cc b/src/os/LevelDBStore.cc index 8e102817248..612063cf481 100644 --- a/src/os/LevelDBStore.cc +++ b/src/os/LevelDBStore.cc @@ -44,6 +44,11 @@ int LevelDBStore::init(ostream &out, bool create_if_missing) ldoptions.compression = leveldb::kNoCompression; ldoptions.create_if_missing = create_if_missing; + if (options.log_file.length()) { + leveldb::Env *env = leveldb::Env::Default(); + env->NewLogger(options.log_file, &ldoptions.info_log); + } + leveldb::DB *_db; leveldb::Status status = leveldb::DB::Open(ldoptions, path, &_db); db.reset(_db); diff --git a/src/os/LevelDBStore.h b/src/os/LevelDBStore.h index 83f2ed3b4c4..557595181f6 100644 --- a/src/os/LevelDBStore.h +++ b/src/os/LevelDBStore.h @@ -12,6 +12,7 @@ #include <tr1/memory> #include <boost/scoped_ptr.hpp> #include "leveldb/db.h" +#include "leveldb/env.h" #include "leveldb/write_batch.h" #include "leveldb/slice.h" #include "leveldb/cache.h" @@ -72,6 +73,8 @@ public: bool error_if_exists; bool paranoid_checks; + string log_file; + options_t() : write_buffer_size(0), //< 0 means default max_open_files(0), //< 0 means default |