From cd5fb73a660b30bec067ece33d8fe8e65a59ecac Mon Sep 17 00:00:00 2001
From: "7u83@mail.ru" <7u83@mail.ru@noemail.net>
Date: Fri, 10 Apr 2015 17:52:35 +0000
Subject: [PATCH] New log.
FossilOrigin-Name: d8dfa1f4104ae85005dd1ae98db09f38aa56181f0a1d30731f9ffb7d02b2fa86
---
src/capwap/log.c | 126 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 126 insertions(+)
create mode 100644 src/capwap/log.c
diff --git a/src/capwap/log.c b/src/capwap/log.c
new file mode 100644
index 00000000..69594f5a
--- /dev/null
+++ b/src/capwap/log.c
@@ -0,0 +1,126 @@
+/*
+ This file is part of libcapwap.
+
+ libcapwap is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ libcapwap is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Foobar. If not, see .
+
+*/
+
+#include
+#include
+
+#include "log.h"
+
+void (*cw_log_cb)(int level,const char * fromat, ...) = CW_LOG_DEFAULT_LOG;
+void (*cw_log_vcb)(int level,const char * fromat, va_list args) = CW_LOG_DEFAULT_VLOG;
+
+
+const char * cw_log_name = "cw";
+static int colored=1;
+
+
+static const char * get_log_prefix(int level)
+{
+ switch(level){
+ case LOG_DEBUG:
+ return "DBG";
+ case LOG_INFO:
+ return "INF";
+ case LOG_ERR:
+ return "ERROR";
+ case LOG_WARNING:
+ return "WARNING";
+
+ }
+ return "";
+}
+
+static const char * get_log_color_on(int level){
+ if ( !colored )
+ return "";
+
+
+ switch(level){
+ case LOG_DEBUG:
+ return "";
+ case LOG_INFO:
+ return "";
+ case LOG_ERR:
+ return "\033[1;31m";
+ }
+ return "";
+
+}
+
+static const char * get_log_color_ontext(int level){
+ if ( !colored )
+ return "";
+
+
+ switch(level){
+ case LOG_DEBUG:
+ return "";
+ case LOG_INFO:
+ return "";
+ case LOG_ERR:
+ return "\033[22m";
+ }
+ return "";
+
+}
+
+
+
+
+static const char * get_log_color_off(int level){
+ if ( !colored )
+ return "";
+
+
+ switch(level){
+ case LOG_DEBUG:
+ return "";
+ case LOG_INFO:
+ return "";
+ case LOG_ERR:
+ return "\033[22;39m";
+ }
+ return "";
+
+}
+
+
+
+
+
+void cw_log_colored(int level, const char *format, ...)
+{
+ char fbuf[1024];
+
+ sprintf(fbuf, "%s%s%s: %s%s",
+ get_log_color_on(level),
+ get_log_prefix(level),
+ get_log_color_ontext(level),
+ format,
+ get_log_color_off(level)
+ );
+
+
+ va_list args;
+ va_start(args, format);
+ cw_log_vcb(level,fbuf,args);
+ va_end(args);
+
+}
+
+