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); + +} + +