[tracker/libtracker-sparql] libtracker-sparql: Use TRACKER_VERBOSITY environment variable



commit d215f87d2fe79871a63057484fe759a9cbb36070
Author: Jürg Billeter <j bitron ch>
Date:   Tue Aug 10 11:36:01 2010 +0200

    libtracker-sparql: Use TRACKER_VERBOSITY environment variable

 src/libtracker-sparql/tracker-connection.vala |   55 +++++++++---------------
 1 files changed, 21 insertions(+), 34 deletions(-)
---
diff --git a/src/libtracker-sparql/tracker-connection.vala b/src/libtracker-sparql/tracker-connection.vala
index 34396b7..5172e93 100644
--- a/src/libtracker-sparql/tracker-connection.vala
+++ b/src/libtracker-sparql/tracker-connection.vala
@@ -77,7 +77,7 @@ public errordomain Tracker.Sparql.Error {
 public abstract class Tracker.Sparql.Connection : Object {
 	static bool direct_only;
 	static weak Connection? singleton;
-	static int verbosity = 0;
+	static bool log_initialized;
 
 	/**
 	 * tracker_sparql_connection_get:
@@ -131,16 +131,20 @@ public abstract class Tracker.Sparql.Connection : Object {
 	}
 
 	private static void log_init () {
+		if (log_initialized) {
+			return;
+		}
+
+		log_initialized = true;
+
 		// Avoid debug messages
-		string env_verbosity = Environment.get_variable ("TRACKER_SPARQL_VERBOSITY");
+		int verbosity = 0;
+		string env_verbosity = Environment.get_variable ("TRACKER_VERBOSITY");
 		if (env_verbosity != null)
 			verbosity = env_verbosity.to_int ();
 
-		GLib.Log.set_handler (null, LogLevelFlags.LEVEL_MASK | LogLevelFlags.FLAG_FATAL, log_handler);
-		GLib.Log.set_default_handler (log_handler);
-	}
+		LogLevelFlags remove_levels = 0;
 
-	private static bool log_should_handle (LogLevelFlags log_level) {
 		switch (verbosity) {
 		// Log level 3: EVERYTHING
 		case 3:
@@ -148,48 +152,31 @@ public abstract class Tracker.Sparql.Connection : Object {
 
 		// Log level 2: CRITICAL/ERROR/WARNING/INFO/MESSAGE only
 		case 2:
-			if (!(LogLevelFlags.LEVEL_MESSAGE in log_level) &&
-				!(LogLevelFlags.LEVEL_INFO in log_level) &&
-				!(LogLevelFlags.LEVEL_WARNING in log_level) &&
-				!(LogLevelFlags.LEVEL_ERROR in log_level) &&
-				!(LogLevelFlags.LEVEL_CRITICAL in log_level)) {
-				return false;
-			}
-
+			remove_levels = LogLevelFlags.LEVEL_DEBUG;
 			break;
 
 		// Log level 1: CRITICAL/ERROR/WARNING/INFO only
 		case 1:
-			if (!(LogLevelFlags.LEVEL_INFO in log_level) &&
-				!(LogLevelFlags.LEVEL_WARNING in log_level) &&
-				!(LogLevelFlags.LEVEL_ERROR in log_level) &&
-				!(LogLevelFlags.LEVEL_CRITICAL in log_level)) {
-				return false;
-			}
-
+			remove_levels = LogLevelFlags.LEVEL_DEBUG |
+			              LogLevelFlags.LEVEL_MESSAGE;
 			break;
 
 		// Log level 0: CRITICAL/ERROR/WARNING only (default)
 		default:
 		case 0:
-			if (!(LogLevelFlags.LEVEL_WARNING in log_level) &&
-				!(LogLevelFlags.LEVEL_ERROR in log_level) &&
-				!(LogLevelFlags.LEVEL_CRITICAL in log_level)) {
-				return false;
-			}
-
+			remove_levels = LogLevelFlags.LEVEL_DEBUG |
+			              LogLevelFlags.LEVEL_MESSAGE |
+			              LogLevelFlags.LEVEL_INFO;
 			break;
 		}
 
-		return true;
-	}
-
-	private static void log_handler (string? log_domain, LogLevelFlags log_level, string message) {
-		if (!log_should_handle (log_level)) {
-			return;
+		if (remove_levels != 0) {
+			GLib.Log.set_handler ("Tracker", remove_levels, remove_log_handler);
 		}
+	}
 
-		GLib.Log.default_handler (log_domain, log_level, message);
+	private static void remove_log_handler (string? log_domain, LogLevelFlags log_level, string message) {
+		/* do nothing */
 	}
 
 	/**



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]