Android Logger Support
This commit is contained in:
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <IACore/String.hpp>
|
#include <IACore/Logger.hpp>
|
||||||
|
|
||||||
namespace ia {
|
namespace ia {
|
||||||
enum class ExceptionKind {
|
enum class ExceptionKind {
|
||||||
@ -132,7 +132,7 @@ private:
|
|||||||
#define DEFINE_THROWER(name) \
|
#define DEFINE_THROWER(name) \
|
||||||
template <typename... Args> NORETURN VOID THROW_##name(Args... args) { \
|
template <typename... Args> NORETURN VOID THROW_##name(Args... args) { \
|
||||||
const auto msg = BuildString(args...); \
|
const auto msg = BuildString(args...); \
|
||||||
printf(#name " %s\n", msg.c_str()); \
|
Logger::Error("EXCEPT", "(", #name, "): ", msg); \
|
||||||
throw RuntimeException(ExceptionKind::name, msg); \
|
throw RuntimeException(ExceptionKind::name, msg); \
|
||||||
}
|
}
|
||||||
FOR_EACH_RUNTIME_EXCEPT_TYPE(DEFINE_THROWER);
|
FOR_EACH_RUNTIME_EXCEPT_TYPE(DEFINE_THROWER);
|
||||||
|
|||||||
@ -18,6 +18,10 @@
|
|||||||
|
|
||||||
#include <IACore/String.hpp>
|
#include <IACore/String.hpp>
|
||||||
|
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
#include <android/log.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace ia
|
namespace ia
|
||||||
{
|
{
|
||||||
class Logger
|
class Logger
|
||||||
@ -27,21 +31,44 @@ namespace ia
|
|||||||
{
|
{
|
||||||
StringStream ss;
|
StringStream ss;
|
||||||
UNUSED((ss << ... << args));
|
UNUSED((ss << ... << args));
|
||||||
printf("\033[32m[INFO]: [%s] %s\033[39m\n", tag, ss.str().c_str());
|
#ifdef __ANDROID__
|
||||||
|
__android_log_print(ANDROID_LOG_DEBUG, "IAApp", ss.str().c_str());
|
||||||
|
#else
|
||||||
|
printf("\033[0;37m[INFO]: [%s] %s\033[39m\n", tag, ss.str().c_str());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename... Args> STATIC VOID Success(PCCHAR tag, Args... args)
|
||||||
|
{
|
||||||
|
StringStream ss;
|
||||||
|
UNUSED((ss << ... << args));
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
__android_log_print(ANDROID_LOG_INFO, "IAApp", ss.str().c_str());
|
||||||
|
#else
|
||||||
|
printf("\033[32m[SUCCESS]: [%s] %s\033[39m\n", tag, ss.str().c_str());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename... Args> STATIC VOID Warn(PCCHAR tag, Args... args)
|
template<typename... Args> STATIC VOID Warn(PCCHAR tag, Args... args)
|
||||||
{
|
{
|
||||||
StringStream ss;
|
StringStream ss;
|
||||||
UNUSED((ss << ... << args));
|
UNUSED((ss << ... << args));
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
__android_log_print(ANDROID_LOG_DEBUG, "IAApp", ss.str().c_str());
|
||||||
|
#else
|
||||||
printf("\033[33m[WARN]: [%s] %s\033[39m\n", tag, ss.str().c_str());
|
printf("\033[33m[WARN]: [%s] %s\033[39m\n", tag, ss.str().c_str());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename... Args> STATIC VOID Error(PCCHAR tag, Args... args)
|
template<typename... Args> STATIC VOID Error(PCCHAR tag, Args... args)
|
||||||
{
|
{
|
||||||
StringStream ss;
|
StringStream ss;
|
||||||
UNUSED((ss << ... << args));
|
UNUSED((ss << ... << args));
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
__android_log_print(ANDROID_LOG_ERROR, "IAApp", ss.str().c_str());
|
||||||
|
#else
|
||||||
printf("\033[31m[ERROR]: [%s] %s\033[39m\n", tag, ss.str().c_str());
|
printf("\033[31m[ERROR]: [%s] %s\033[39m\n", tag, ss.str().c_str());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user