Merge pull request #422 from theamirocohen/android_log

Android_logger conditionally apply its own formatting
This commit is contained in:
Gabi Melman 2017-04-26 00:01:34 +03:00 committed by GitHub
commit 9e6d81de08
1 changed files with 4 additions and 2 deletions

View File

@ -25,14 +25,15 @@ namespace sinks
class android_sink : public sink class android_sink : public sink
{ {
public: public:
explicit android_sink(const std::string& tag = "spdlog"): _tag(tag) {} explicit android_sink(const std::string& tag = "spdlog", bool use_raw_msg = false): _tag(tag), _use_raw_msg(use_raw_msg){}
void log(const details::log_msg& msg) override void log(const details::log_msg& msg) override
{ {
const android_LogPriority priority = convert_to_android(msg.level); const android_LogPriority priority = convert_to_android(msg.level);
const char *msg_output = (_use_raw_msg ? msg.raw.c_str() : msg.formatted.c_str());
// See system/core/liblog/logger_write.c for explanation of return value // See system/core/liblog/logger_write.c for explanation of return value
const int ret = __android_log_write( const int ret = __android_log_write(
priority, _tag.c_str(), msg.formatted.c_str() priority, _tag.c_str(), msg_output
); );
if (ret < 0) if (ret < 0)
{ {
@ -67,6 +68,7 @@ private:
} }
std::string _tag; std::string _tag;
bool _use_raw_msg;
}; };
} }