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:
committed by
Facebook GitHub Bot
parent
56694b441e
commit
6b655d64db
@@ -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());
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user