]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/common/ceph_context.cc
import quincy beta 17.1.0
[ceph.git] / ceph / src / common / ceph_context.cc
index 25e96b0966bbade00160bab4f8d0778c484b320c..df23ae7a60f1842ef03bbcba828bfeb3c0b59c61 100644 (file)
 #include "common/debug.h"
 #include "common/config.h"
 #include "common/ceph_crypto.h"
-#include "common/lockdep.h"
+#include "common/hostname.h"
 #include "common/HeartbeatMap.h"
 #include "common/errno.h"
 #include "common/Graylog.h"
+#ifdef CEPH_DEBUG_MUTEX
+#include "common/lockdep.h"
+#endif
 
 #include "log/Log.h"
 
@@ -105,6 +108,7 @@ PerfCountersCollectionImpl* CephContext::get_perfcounters_collection()
 #else  // WITH_SEASTAR
 namespace {
 
+#ifdef CEPH_DEBUG_MUTEX
 class LockdepObs : public md_config_obs_t {
 public:
   explicit LockdepObs(CephContext *cct)
@@ -137,6 +141,7 @@ private:
   bool m_registered;
   ceph::mutex lock;
 };
+#endif // CEPH_DEBUG_MUTEX
 
 class MempoolObs : public md_config_obs_t,
                  public AdminSocketHook {
@@ -287,6 +292,8 @@ public:
       "err_to_graylog",
       "log_graylog_host",
       "log_graylog_port",
+      "log_to_journald",
+      "err_to_journald",
       "log_coarse_timestamps",
       "fsid",
       "host",
@@ -340,7 +347,7 @@ public:
       log->set_graylog_level(l, l);
 
       if (conf->log_to_graylog || conf->err_to_graylog) {
-       log->start_graylog();
+       log->start_graylog(conf->host, conf.get_val<uuid_d>("fsid"));
       } else if (! (conf->log_to_graylog && conf->err_to_graylog)) {
        log->stop_graylog();
       }
@@ -350,6 +357,18 @@ public:
       log->graylog()->set_destination(conf->log_graylog_host, conf->log_graylog_port);
     }
 
+    // journald
+    if (changed.count("log_to_journald") || changed.count("err_to_journald")) {
+      int l = conf.get_val<bool>("log_to_journald") ? 99 : (conf.get_val<bool>("err_to_journald") ? -1 : -2);
+      log->set_journald_level(l, l);
+
+      if (l > -2) {
+        log->start_journald_logger();
+      } else {
+        log->stop_journald_logger();
+      }
+    }
+
     if (changed.find("log_coarse_timestamps") != changed.end()) {
       log->set_coarse_timestamps(conf.get_val<bool>("log_coarse_timestamps"));
     }
@@ -679,7 +698,9 @@ CephContext::CephContext(uint32_t module_type_,
     _crypto_none(NULL),
     _crypto_aes(NULL),
     _plugin_registry(NULL),
+#ifdef CEPH_DEBUG_MUTEX
     _lockdep_obs(NULL),
+#endif
     crush_location(this)
 {
   _log = new ceph::logging::Log(&_conf->subsys);
@@ -689,10 +710,10 @@ CephContext::CephContext(uint32_t module_type_,
 
   _cct_obs = new CephContextObs(this);
   _conf.add_observer(_cct_obs);
-
+#ifdef CEPH_DEBUG_MUTEX
   _lockdep_obs = new LockdepObs(this);
   _conf.add_observer(_lockdep_obs);
-
+#endif
   _perf_counters_collection = new PerfCountersCollection(this);
  
   _admin_socket = new AdminSocket(this);
@@ -768,11 +789,11 @@ CephContext::~CephContext()
   _conf.remove_observer(_cct_obs);
   delete _cct_obs;
   _cct_obs = NULL;
-
+#ifdef CEPH_DEBUG_MUTEX
   _conf.remove_observer(_lockdep_obs);
   delete _lockdep_obs;
   _lockdep_obs = NULL;
-
+#endif
   _log->stop();
   delete _log;
   _log = NULL;