Custom log handler setup

Summary: Add custom log handler setup so people can use their own log infra instead of "printf".

Reviewed By: Neil-Clifford-FB

Differential Revision: D46590343

fbshipit-source-id: ded9cf6caa580d477a71a9155cad9db295151c84
This commit is contained in:
Murat Seker
2023-06-09 06:26:52 -07:00
committed by Facebook GitHub Bot
parent 56694b441e
commit 6b655d64db
2 changed files with 25 additions and 0 deletions

View File

@@ -14,7 +14,26 @@
namespace facebook { namespace facebook {
namespace flipper { namespace flipper {
namespace {
static LogHandlerFunc* getHandle() {
static LogHandlerFunc sHandler = defaultLogHandler;
return &sHandler;
}
} // namespace
void log(const std::string& message) { void log(const std::string& message) {
return (*getHandle())(message);
}
void setLogHandler(LogHandlerFunc handler) {
*getHandle() = handler;
}
LogHandlerFunc getLogHandler() {
return *getHandle();
}
void defaultLogHandler(const std::string& message) {
#ifdef __ANDROID__ #ifdef __ANDROID__
__android_log_print( __android_log_print(
ANDROID_LOG_INFO, "flipper", "flipper: %s", message.c_str()); ANDROID_LOG_INFO, "flipper", "flipper: %s", message.c_str());

View File

@@ -14,5 +14,11 @@ namespace flipper {
void log(const std::string& message); void log(const std::string& message);
using LogHandlerFunc = void (*)(const std::string& message);
void setLogHandler(LogHandlerFunc handler);
LogHandlerFunc getLogHandler();
void defaultLogHandler(const std::string& message);
} // namespace flipper } // namespace flipper
} // namespace facebook } // namespace facebook