diff --git a/src/DebugLogger.h b/src/DebugLogger.h index d22373b3ae..a8df9cd977 100644 --- a/src/DebugLogger.h +++ b/src/DebugLogger.h @@ -85,6 +85,9 @@ public: bool IsEnabled(DebugStream stream) const { return streams[int(stream)].enabled; } + // Are any streams enabled? + bool HasEnabledStreams() const { return ! enabled_streams.empty(); } + void SetVerbose(bool arg_verbose) { verbose = arg_verbose; } bool IsVerbose() const { return verbose; } diff --git a/src/Options.cc b/src/Options.cc index c0c6ff3d4e..2d0bb632c0 100644 --- a/src/Options.cc +++ b/src/Options.cc @@ -170,7 +170,10 @@ void usage(const char* prog, int code) { "not set, will use first IPv4 address from /etc/resolv.conf"); fprintf(stderr, " $ZEEK_DEBUG_LOG_STDERR | Use stderr for debug logs generated via " - "the -B flag"); + "the -B flag\n"); + fprintf(stderr, + " $ZEEK_DEBUG_LOG_STREAMS | Enable debugging output for selected " + "streams (see the -B flag)"); fprintf(stderr, "\n"); diff --git a/src/zeek-setup.cc b/src/zeek-setup.cc index 8e39653b6d..3cf44a5b7f 100644 --- a/src/zeek-setup.cc +++ b/src/zeek-setup.cc @@ -556,9 +556,13 @@ SetupResult setup(int argc, char** argv, Options* zopts) { reporter->FatalError("-u incompatible with --no-unused-warnings"); #ifdef DEBUG - if ( options.debug_log_streams ) { + if ( options.debug_log_streams ) debug_logger.EnableStreams(options.debug_log_streams->data()); + if ( const auto* streams = getenv("ZEEK_DEBUG_LOG_STREAMS") ) + debug_logger.EnableStreams(streams); + + if ( debug_logger.HasEnabledStreams() ) { if ( getenv("ZEEK_DEBUG_LOG_STDERR") ) debug_logger.OpenDebugLog(nullptr); else