]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common,ceph_filestore_dump: Add ability for utilities to suppress library dout output
authorDavid Zafman <david.zafman@inktank.com>
Wed, 14 May 2014 19:42:21 +0000 (12:42 -0700)
committerDavid Zafman <dzafman@redhat.com>
Thu, 28 Aug 2014 23:20:06 +0000 (16:20 -0700)
Suppress dout output with CODE_ENVIRONMENT_UTILITY_NODOUT
ceph_filestore_dump turns on dout output if --debug specified
When used it can still be enable with --log-to-stderr --err-to-stderr

Signed-off-by: David Zafman <david.zafman@inktank.com>
src/common/code_environment.h
src/common/common_init.cc
src/tools/ceph_filestore_dump.cc

index 761d6c022ee71fc09b5d0cb5437f73528fb619b6..e21f0eff4f878cd4834e0dd6b4f2380d214d544c 100644 (file)
@@ -19,6 +19,7 @@ enum code_environment_t {
   CODE_ENVIRONMENT_UTILITY = 0,
   CODE_ENVIRONMENT_DAEMON = 1,
   CODE_ENVIRONMENT_LIBRARY = 2,
+  CODE_ENVIRONMENT_UTILITY_NODOUT = 3,
 };
 
 #ifdef __cplusplus
index 1f97e292b72b5010b393874e3792a8562e749ffb..dd0b0e767dd3dc308a023aa8b646421b0a6a7097 100644 (file)
@@ -63,6 +63,7 @@ CephContext *common_preinit(const CephInitParameters &iparams,
       conf->set_val("keyring", "$osd_data/keyring", false);
     break;
 
+  case CODE_ENVIRONMENT_UTILITY_NODOUT:
   case CODE_ENVIRONMENT_LIBRARY:
     conf->set_val_or_die("log_to_stderr", "false");
     conf->set_val_or_die("err_to_stderr", "false");
index cc15fc5b23a86858fe900da9e77b9f995da966fa..0416f583215387f0e71c6945e35cc05667c5b955 100644 (file)
@@ -1196,10 +1196,7 @@ int main(int argc, char **argv)
     ceph_options.push_back(i->c_str());
   }
 
-  //Suppress derr() output to stderr by default
   if (!vm.count("debug")) {
-    close(STDERR_FILENO);
-    (void)open("/dev/null", O_WRONLY);
     debug = false;
   } else {
     debug = true;
@@ -1207,11 +1204,15 @@ int main(int argc, char **argv)
 
   global_init(
     &def_args, ceph_options, CEPH_ENTITY_TYPE_OSD,
-    CODE_ENVIRONMENT_UTILITY, 0);
+    CODE_ENVIRONMENT_UTILITY_NODOUT, 0);
     //CINIT_FLAG_NO_DEFAULT_CONFIG_FILE);
   common_init_finish(g_ceph_context);
-  g_ceph_context->_conf->apply_changes(NULL);
   g_conf = g_ceph_context->_conf;
+  if (debug) {
+    g_conf->set_val_or_die("log_to_stderr", "true");
+    g_conf->set_val_or_die("err_to_stderr", "true");
+  }
+  g_conf->apply_changes(NULL);
 
   //Verify that fspath really is an osd store
   struct stat st;