Fix non-working verbosity when set prior to --debug

Before this change doing something like `--verbose 10 --debug-cycles`
did not properly set verbosity, only using those arguments in an other
way around was leading to a correct verbosity level.
This commit is contained in:
Sergey Sharybin 2019-06-28 15:42:58 +02:00
parent 8401ee24ff
commit 0511de99bb
Notes: blender-bot 2023-02-14 11:08:33 +01:00
Referenced by issue #65586, --verbose option is incorrectly described in CLI "--help" page
2 changed files with 34 additions and 5 deletions

View File

@ -17,6 +17,7 @@
#include "util/util_logging.h"
#include "util/util_math.h"
#include "util/util_string.h"
#include <stdio.h>
#ifdef _MSC_VER
@ -25,6 +26,17 @@
CCL_NAMESPACE_BEGIN
static bool is_verbosity_set()
{
using CYCLES_GFLAGS_NAMESPACE::GetCommandLineOption;
std::string verbosity;
if (!GetCommandLineOption("v", &verbosity)) {
return false;
}
return verbosity != "0";
}
void util_logging_init(const char *argv0)
{
#ifdef WITH_CYCLES_LOGGING
@ -36,7 +48,9 @@ void util_logging_init(const char *argv0)
google::InitGoogleLogging(argv0);
SetCommandLineOption("logtostderr", "1");
SetCommandLineOption("v", "0");
if (!is_verbosity_set()) {
SetCommandLineOption("v", "0");
}
SetCommandLineOption("stderrthreshold", severity_fatal);
SetCommandLineOption("minloglevel", severity_fatal);
#else
@ -49,7 +63,9 @@ void util_logging_start()
#ifdef WITH_CYCLES_LOGGING
using CYCLES_GFLAGS_NAMESPACE::SetCommandLineOption;
SetCommandLineOption("logtostderr", "1");
SetCommandLineOption("v", "2");
if (!is_verbosity_set()) {
SetCommandLineOption("v", "2");
}
SetCommandLineOption("stderrthreshold", "1");
SetCommandLineOption("minloglevel", "0");
#endif

View File

@ -23,6 +23,16 @@
#include "intern/utildefines.h"
#include "libmv/logging/logging.h"
static bool is_verbosity_set() {
using LIBMV_GFLAGS_NAMESPACE::GetCommandLineOption;
std::string verbosity;
if (!GetCommandLineOption("v", &verbosity)) {
return false;
}
return verbosity != "0";
}
void libmv_initLogging(const char* argv0) {
using LIBMV_GFLAGS_NAMESPACE::SetCommandLineOption;
// Make it so ERROR messages are always print into console.
@ -30,8 +40,9 @@ void libmv_initLogging(const char* argv0) {
snprintf(severity_fatal, sizeof(severity_fatal), "%d",
google::GLOG_ERROR);
google::InitGoogleLogging(argv0);
SetCommandLineOption("logtostderr", "1");
SetCommandLineOption("v", "0");
if (!is_verbosity_set()) {
SetCommandLineOption("v", "0");
}
SetCommandLineOption("stderrthreshold", severity_fatal);
SetCommandLineOption("minloglevel", severity_fatal);
}
@ -39,7 +50,9 @@ void libmv_initLogging(const char* argv0) {
void libmv_startDebugLogging(void) {
using LIBMV_GFLAGS_NAMESPACE::SetCommandLineOption;
SetCommandLineOption("logtostderr", "1");
SetCommandLineOption("v", "2");
if (!is_verbosity_set()) {
SetCommandLineOption("v", "2");
}
SetCommandLineOption("stderrthreshold", "1");
SetCommandLineOption("minloglevel", "0");
}