From 0cae2ca0037ac47e71de54c8ddbb041d98d9529f Mon Sep 17 00:00:00 2001 From: Daniel Thayer Date: Sat, 4 Jun 2016 17:16:25 -0500 Subject: [PATCH] Don't create debug.log immediately upon startup Instead of creating the debug.log immediately when bro starts, now it is created only after the debug streams are enabled. This avoids having an empty log being created when it shouldn't be, in usages such as "bro -h", "bro -v", or "bro -B help" (and also when using broctl, which needs to run "bro -v"). --- src/DebugLogger.cc | 23 +++++++++++++---------- src/DebugLogger.h | 4 +++- src/main.cc | 2 ++ 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/DebugLogger.cc b/src/DebugLogger.cc index 4e3dba9d81..57f85af417 100644 --- a/src/DebugLogger.cc +++ b/src/DebugLogger.cc @@ -7,7 +7,7 @@ #include "Net.h" #include "plugin/Plugin.h" -DebugLogger debug_logger("debug"); +DebugLogger debug_logger; // Same order here as in DebugStream. DebugLogger::Stream DebugLogger::streams[NUM_DBGS] = { @@ -22,7 +22,18 @@ DebugLogger::Stream DebugLogger::streams[NUM_DBGS] = { { "pktio", 0, false }, { "broker", 0, false } }; -DebugLogger::DebugLogger(const char* filename) +DebugLogger::DebugLogger() + { + verbose = false; + } + +DebugLogger::~DebugLogger() + { + if ( file && file != stderr ) + fclose(file); + } + +void DebugLogger::OpenDebugLog(const char* filename) { if ( filename ) { @@ -45,14 +56,6 @@ DebugLogger::DebugLogger(const char* filename) } else file = stderr; - - verbose = false; - } - -DebugLogger::~DebugLogger() - { - if ( file != stderr ) - fclose(file); } void DebugLogger::ShowStreamsHelp() diff --git a/src/DebugLogger.h b/src/DebugLogger.h index ca947ff03a..18068419b8 100644 --- a/src/DebugLogger.h +++ b/src/DebugLogger.h @@ -53,9 +53,11 @@ namespace plugin { class Plugin; } class DebugLogger { public: // Output goes to stderr per default. - DebugLogger(const char* filename = 0); + DebugLogger(); ~DebugLogger(); + void OpenDebugLog(const char* filename = 0); + void Log(DebugStream stream, const char* fmt, ...); void Log(const plugin::Plugin& plugin, const char* fmt, ...); diff --git a/src/main.cc b/src/main.cc index a0615d75da..2f1b054db2 100644 --- a/src/main.cc +++ b/src/main.cc @@ -755,6 +755,8 @@ int main(int argc, char** argv) #ifdef DEBUG if ( debug_streams ) debug_logger.EnableStreams(debug_streams); + + debug_logger.OpenDebugLog("debug"); #endif init_random_seed(seed, (seed_load_file && *seed_load_file ? seed_load_file : 0) , seed_save_file);