From 1642cbd5c578945e65d2fa5ee0bab9e2da26a10b Mon Sep 17 00:00:00 2001 From: "Zeeshan Ali (Khattak)" Date: Mon, 28 Sep 2009 19:22:36 +0300 Subject: [PATCH] core: Introducing LogLevel enumerator An enum type to represent the log levels and a method in LogHander to map this type to GLib.LogLevelFlags. --- src/rygel/rygel-log-handler.vala | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/rygel/rygel-log-handler.vala b/src/rygel/rygel-log-handler.vala index 0708120..81669f2 100644 --- a/src/rygel/rygel-log-handler.vala +++ b/src/rygel/rygel-log-handler.vala @@ -21,6 +21,16 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +public enum Rygel.LogLevel { + INVALID = 0, + CRITICAL = 1, + ERROR = 2, + WARNING = 3, + INFO = 4, + DEFAULT = 4, + DEBUG = 5 +} + public class Rygel.LogHandler : GLib.Object { public const string DOMAIN = "Rygel"; private const LogLevelFlags DEFAULT_LEVELS = LogLevelFlags.LEVEL_WARNING | @@ -61,4 +71,43 @@ public class Rygel.LogHandler : GLib.Object { Log.default_handler (DOMAIN, log_levels, message, null); } } + + private LogLevelFlags log_level_to_flags (LogLevel level) { + LogLevelFlags flags = DEFAULT_LEVELS; + + switch (level) { + case LogLevel.CRITICAL: + flags = LogLevelFlags.LEVEL_CRITICAL; + break; + case LogLevel.ERROR: + flags = LogLevelFlags.LEVEL_CRITICAL | + LogLevelFlags.LEVEL_ERROR; + break; + case LogLevel.WARNING: + flags = LogLevelFlags.LEVEL_WARNING | + LogLevelFlags.LEVEL_CRITICAL | + LogLevelFlags.LEVEL_ERROR; + break; + case LogLevel.INFO: + flags = LogLevelFlags.LEVEL_WARNING | + LogLevelFlags.LEVEL_CRITICAL | + LogLevelFlags.LEVEL_ERROR | + LogLevelFlags.LEVEL_MESSAGE | + LogLevelFlags.LEVEL_INFO; + break; + case LogLevel.DEBUG: + flags = LogLevelFlags.LEVEL_WARNING | + LogLevelFlags.LEVEL_CRITICAL | + LogLevelFlags.LEVEL_ERROR | + LogLevelFlags.LEVEL_MESSAGE | + LogLevelFlags.LEVEL_INFO | + LogLevelFlags.LEVEL_DEBUG; + break; + default: + flags = DEFAULT_LEVELS; + break; + } + + return flags; + } } -- 2.7.4