Make "-B all" apply to plugin streams as well.

This commit is contained in:
Christian Kreibich 2024-11-15 12:34:10 -08:00
parent 5e4942bcc0
commit 7563af4906
3 changed files with 20 additions and 10 deletions

View file

@ -21,11 +21,6 @@ DebugLogger::Stream DebugLogger::streams[NUM_DBGS] =
{"plugins", 0, false}, {"zeekygen", 0, false}, {"pktio", 0, false}, {"broker", 0, false}, {"plugins", 0, false}, {"zeekygen", 0, false}, {"pktio", 0, false}, {"broker", 0, false},
{"scripts", 0, false}, {"supervisor", 0, false}, {"hashkey", 0, false}, {"spicy", 0, false}}; {"scripts", 0, false}, {"supervisor", 0, false}, {"hashkey", 0, false}, {"spicy", 0, false}};
DebugLogger::DebugLogger() {
verbose = false;
file = nullptr;
}
DebugLogger::~DebugLogger() { DebugLogger::~DebugLogger() {
if ( file && file != stderr ) if ( file && file != stderr )
fclose(file); fclose(file);
@ -94,6 +89,7 @@ void DebugLogger::EnableStreams(const char* s) {
enabled_streams.insert(streams[i].prefix); enabled_streams.insert(streams[i].prefix);
} }
all = true;
verbose = true; verbose = true;
goto next; goto next;
} }
@ -175,10 +171,11 @@ void DebugLogger::Log(DebugStream stream, const char* fmt, ...) {
} }
void DebugLogger::Log(const plugin::Plugin& plugin, const char* fmt, ...) { void DebugLogger::Log(const plugin::Plugin& plugin, const char* fmt, ...) {
if ( ! all ) {
std::string tok = PluginStreamName(plugin.Name()); std::string tok = PluginStreamName(plugin.Name());
if ( enabled_streams.find(tok) == enabled_streams.end() ) if ( enabled_streams.find(tok) == enabled_streams.end() )
return; return;
}
fprintf(file, "%17.06f/%17.06f [plugin %s] ", run_state::network_time, util::current_time(true), fprintf(file, "%17.06f/%17.06f [plugin %s] ", run_state::network_time, util::current_time(true),
plugin.Name().c_str()); plugin.Name().c_str());

View file

@ -63,7 +63,7 @@ namespace detail {
class DebugLogger { class DebugLogger {
public: public:
// Output goes to stderr per default. // Output goes to stderr per default.
DebugLogger(); DebugLogger() : file(nullptr), all(false), verbose(false) {};
~DebugLogger(); ~DebugLogger();
void OpenDebugLog(const char* filename = 0); void OpenDebugLog(const char* filename = 0);
@ -95,6 +95,7 @@ public:
private: private:
FILE* file; FILE* file;
bool all;
bool verbose; bool verbose;
struct Stream { struct Stream {

View file

@ -0,0 +1,12 @@
/*
* Verify that `-B all` leads to plugin debug stream content in debug.log.
* This requires JavaScript and a debug build.
* @TEST-REQUIRES: test "$($BUILD/zeek-config --build_type)" = "debug"
* @TEST-REQUIRES: $SCRIPTS/have-javascript
* @TEST-EXEC: zeek -b -B all %INPUT
* @TEST-EXEC: grep -q '[plugin Zeek::JavaScript]' debug.log
*/
zeek.on('zeek_init', () => {
console.log('Hello Zeek!');
});