diff --git a/src/knx/logger.cpp b/src/knx/logger.cpp index 3265e163..5e0e0086 100644 --- a/src/knx/logger.cpp +++ b/src/knx/logger.cpp @@ -3,7 +3,17 @@ void KnxLogger::log(const char* message, va_list& values) { + if(_callback) + { + _callback(message, values); + return; + } printf(message, values); } +void KnxLogger::setCallback(KnxLoggerCallback callback) +{ + _callback = callback; +} + KnxLogger knxLogger; \ No newline at end of file diff --git a/src/knx/logger.h b/src/knx/logger.h index ffcaa168..d2eafc86 100644 --- a/src/knx/logger.h +++ b/src/knx/logger.h @@ -20,11 +20,15 @@ #include "platform.h" +typedef void (*KnxLoggerCallback)(const char* message, va_list& values); class KnxLogger { + protected: + KnxLoggerCallback _callback = nullptr; public: void log(const char* message, va_list& values); + void setCallback(KnxLoggerCallback callback); }; extern KnxLogger knxLogger;