From c13691a8e6febee561c839ded33b0f33c53b12d3 Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Thu, 22 Mar 2012 14:10:24 +0200
Subject: [PATCH] Add output levels --info and --trace (--verbose is now more
 verbose)

---
 doc/minetest.6       |  8 +++++++-
 doc/minetestserver.6 |  8 +++++++-
 src/main.cpp         | 20 ++++++++++++++++----
 src/socket.cpp       |  5 ++---
 src/socket.h         |  2 ++
 5 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/doc/minetest.6 b/doc/minetest.6
index 2a39b870d..0d6433f29 100644
--- a/doc/minetest.6
+++ b/doc/minetest.6
@@ -61,9 +61,15 @@ Run dedicated server
 \-\-speedtests
 Run speed tests
 .TP
-\-\-verbose
+\-\-info
 Print more information to console
 .TP
+\-\-verbose
+Print even more information to console
+.TP
+\-\-trace
+Print enormous amounts of information to console
+.TP
 \-\-world <value>
 Set world path
 
diff --git a/doc/minetestserver.6 b/doc/minetestserver.6
index dffe0fc8e..81203954d 100644
--- a/doc/minetestserver.6
+++ b/doc/minetestserver.6
@@ -40,9 +40,15 @@ Same as --world (deprecated)
 \-\-port <value>
 Set network port (UDP) to use
 .TP
-\-\-verbose
+\-\-info
 Print more information to console
 .TP
+\-\-verbose
+Print even more information to console
+.TP
+\-\-trace
+Print enormous amounts of information to console
+.TP
 \-\-world <value>
 Set world path
 
diff --git a/src/main.cpp b/src/main.cpp
index 75ff569aa..fe1bcd450 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -90,8 +90,6 @@ Profiler *g_profiler = &main_profiler;
 // Connection
 std::ostream *dout_con_ptr = &dummyout;
 std::ostream *derr_con_ptr = &verbosestream;
-//std::ostream *dout_con_ptr = &infostream;
-//std::ostream *derr_con_ptr = &errorstream;
 
 // Server
 std::ostream *dout_server_ptr = &infostream;
@@ -779,8 +777,12 @@ int main(int argc, char *argv[])
 			"Same as --world (deprecated)"));
 	allowed_options.insert("world", ValueSpec(VALUETYPE_STRING,
 			"Set world path (implies local game)"));
-	allowed_options.insert("verbose", ValueSpec(VALUETYPE_FLAG,
+	allowed_options.insert("info", ValueSpec(VALUETYPE_FLAG,
 			"Print more information to console"));
+	allowed_options.insert("verbose", ValueSpec(VALUETYPE_FLAG,
+			"Print even more information to console"));
+	allowed_options.insert("trace", ValueSpec(VALUETYPE_FLAG,
+			"Print enormous amounts of information to log and console"));
 	allowed_options.insert("logfile", ValueSpec(VALUETYPE_STRING,
 			"Set logfile path ('' = no logging)"));
 	allowed_options.insert("gameid", ValueSpec(VALUETYPE_STRING,
@@ -833,9 +835,19 @@ int main(int argc, char *argv[])
 		Low-level initialization
 	*/
 	
+	// If trace is enabled, enable logging of certain things
+	if(cmd_args.getFlag("trace")){
+		dstream<<"Enabling trace level debug output"<<std::endl;
+		dout_con_ptr = &verbosestream;
+		socket_enable_debug_output = true;
+	}
 	// In certain cases, output info level on stderr
-	if(cmd_args.getFlag("verbose") || cmd_args.getFlag("speedtests"))
+	if(cmd_args.getFlag("info") || cmd_args.getFlag("verbose") ||
+			cmd_args.getFlag("trace") || cmd_args.getFlag("speedtests"))
 		log_add_output(&main_stderr_log_out, LMT_INFO);
+	// In certain cases, output verbose level on stderr
+	if(cmd_args.getFlag("verbose") || cmd_args.getFlag("trace"))
+		log_add_output(&main_stderr_log_out, LMT_VERBOSE);
 
 	porting::signal_handler_init();
 	bool &kill = *porting::signal_handler_killstatus();
diff --git a/src/socket.cpp b/src/socket.cpp
index ea65ffda3..caf1895fe 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -52,9 +52,8 @@ typedef int socket_t;
 #include <errno.h>
 #include "utility.h"
 
-// Debug printing options
-// Set to 1 for debug output
-#define DP 0
+bool socket_enable_debug_output = false;
+#define DP socket_enable_debug_output
 // This is prepended to everything printed here
 #define DPS ""
 
diff --git a/src/socket.h b/src/socket.h
index fe542dfcc..ac26b575c 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -23,6 +23,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <ostream>
 #include "exceptions.h"
 
+extern bool socket_enable_debug_output;
+
 class SocketException : public BaseException
 {
 public:
-- 
GitLab