diff options
author | Dimitar Petrovski <dimeptr@gmail.com> | 2012-11-30 13:53:29 +0100 |
---|---|---|
committer | Dimitar Petrovski <dimeptr@gmail.com> | 2012-11-30 13:53:29 +0100 |
commit | c0c90a946c0f5a6722f312e7156ba01c9e743d56 (patch) | |
tree | dc984296d4eda579f9632ee032bf1a62266bcc40 /log.h | |
parent | 16676f55d7aabc55a7b2894dbdf79a462749767f (diff) | |
parent | 250c584c8b52ca6fadc75acc1f8f9e6c2830c014 (diff) | |
download | vdr-plugin-eepg-c0c90a946c0f5a6722f312e7156ba01c9e743d56.tar.gz vdr-plugin-eepg-c0c90a946c0f5a6722f312e7156ba01c9e743d56.tar.bz2 |
Merge branch 'experimental'
Conflicts:
eepg.c
Diffstat (limited to 'log.h')
-rw-r--r-- | log.h | 78 |
1 files changed, 78 insertions, 0 deletions
@@ -0,0 +1,78 @@ +/* + * log.h + * + * Created on: 08.5.2012 + * Author: d.petrovski + */ + +#ifndef LOG_H_ +#define LOG_H_ + +#include <string> +#include <vdr/tools.h> +#include <vdr/thread.h> +#include "setupeepg.h" + +#define VERBOSE 1 +/* 0 = only print errors, 1 = print channels and themes, 2 = print channels, themes, titles, summaries 3 = debug mode */ +/* all is logged into /var/log/syslog */ + + +inline bool CheckLevel(int level) +{ +#ifdef DEBUG + if (cSetupEEPG::getInstance()->LogLevel >= level) +#else + if (VERBOSE >= level) +#endif + { + return true; + } + return false; +} + +inline const char* PrepareLog(std::string message) +{ + message = "EEPG: " + message; + return message.c_str(); +} + +#define MAXSYSLOGBUF 256 + +//void LogVsyslog(int errLevel, const char * message, ...) +inline void LogVsyslog(int errLevel, int const& lineNum, const char * function, const char * message, ...) +{ + va_list ap; + char fmt[MAXSYSLOGBUF]; + if (errLevel == LOG_DEBUG) { + snprintf(fmt, sizeof(fmt), "[%d] %s:%d %s", cThread::ThreadId(), function, lineNum, message); + } else { + snprintf(fmt, sizeof(fmt), "[%d] %s", cThread::ThreadId(), message); + } + va_start(ap,message); + vsyslog ( errLevel, fmt, ap ); + va_end(ap); +} + +#define LogI(a, b...) void( CheckLevel(a) ? LogVsyslog ( LOG_INFO, __LINE__, __FUNCTION__, b ) : void() ) +#define LogE(a, b...) void( CheckLevel(a) ? LogVsyslog ( LOG_ERR, __LINE__, __FUNCTION__, b ) : void() ) +#define LogD(a, b...) void( CheckLevel(a) ? LogVsyslog ( LOG_DEBUG, __LINE__, __FUNCTION__, b ) : void() ) +//#define LogE(a, b...) void( CheckLevel(a) ? esyslog ( b ) : void() ) +//#define LogD(a, b...) void( CheckLevel(a) ? dsyslog ( b ) : void() ) +#define prep(s) PrepareLog(s) +#define prep2(s) s + + +//void LogF(int level, const char * message, ...) __attribute__ ((format (printf,2,3))); + +//void LogF(int level, const char * message, ...) +//{ +// if (CheckLevel(level)) { +// va_list ap; +// va_start(ap,message); +// vsyslog (LOG_ERR, PrepareLog(message), ap ); +// va_end(ap); +// } +//} + +#endif /* LOG_H_ */ |