Lift length limit on Android logging
This commit is contained in:
parent
4d637342f7
commit
ecd62e7eb2
2 changed files with 29 additions and 23 deletions
|
@ -56,7 +56,7 @@ void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, const char
|
||||||
if (instance) {
|
if (instance) {
|
||||||
instance->Log(level, type, file, line, fmt, args);
|
instance->Log(level, type, file, line, fmt, args);
|
||||||
} else {
|
} else {
|
||||||
// Fall back to printf if we're before the log manager has been initialized.
|
// Fall back to printf or direct android logger with a small buffer if the log manager hasn't been initialized yet.
|
||||||
#if PPSSPP_PLATFORM(ANDROID)
|
#if PPSSPP_PLATFORM(ANDROID)
|
||||||
char temp[512];
|
char temp[512];
|
||||||
vsnprintf(temp, sizeof(temp), fmt, args);
|
vsnprintf(temp, sizeof(temp), fmt, args);
|
||||||
|
|
|
@ -198,38 +198,44 @@ AndroidGraphicsContext *graphicsContext;
|
||||||
#define LOG_APP_NAME "PPSSPP"
|
#define LOG_APP_NAME "PPSSPP"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _DEBUG
|
|
||||||
#define DLOG(...) __android_log_print(ANDROID_LOG_INFO, LOG_APP_NAME, __VA_ARGS__);
|
|
||||||
#else
|
|
||||||
#define DLOG(...)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ILOG(...) __android_log_print(ANDROID_LOG_INFO, LOG_APP_NAME, __VA_ARGS__);
|
|
||||||
#define WLOG(...) __android_log_print(ANDROID_LOG_WARN, LOG_APP_NAME, __VA_ARGS__);
|
|
||||||
#define ELOG(...) __android_log_print(ANDROID_LOG_ERROR, LOG_APP_NAME, __VA_ARGS__);
|
|
||||||
#define FLOG(...) __android_log_print(ANDROID_LOG_FATAL, LOG_APP_NAME, __VA_ARGS__);
|
|
||||||
|
|
||||||
#define MessageBox(a, b, c, d) __android_log_print(ANDROID_LOG_INFO, APP_NAME, "%s %s", (b), (c));
|
#define MessageBox(a, b, c, d) __android_log_print(ANDROID_LOG_INFO, APP_NAME, "%s %s", (b), (c));
|
||||||
|
|
||||||
void AndroidLogger::Log(const LogMessage &message) {
|
void AndroidLogger::Log(const LogMessage &message) {
|
||||||
// Log with simplified headers as Android already provides timestamp etc.
|
int mode;
|
||||||
switch (message.level) {
|
switch (message.level) {
|
||||||
case LogTypes::LVERBOSE:
|
case LogTypes::LWARNING:
|
||||||
case LogTypes::LDEBUG:
|
mode = ANDROID_LOG_WARN;
|
||||||
case LogTypes::LINFO:
|
|
||||||
ILOG("[%s] %s", message.log, message.msg.c_str());
|
|
||||||
break;
|
break;
|
||||||
case LogTypes::LERROR:
|
case LogTypes::LERROR:
|
||||||
ELOG("[%s] %s", message.log, message.msg.c_str());
|
mode = ANDROID_LOG_ERROR;
|
||||||
break;
|
break;
|
||||||
case LogTypes::LWARNING:
|
|
||||||
WLOG("[%s] %s", message.log, message.msg.c_str());
|
|
||||||
break;
|
|
||||||
case LogTypes::LNOTICE:
|
|
||||||
default:
|
default:
|
||||||
ILOG("[%s] !!! %s", message.log, message.msg.c_str());
|
mode = ANDROID_LOG_INFO;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Long log messages need splitting up.
|
||||||
|
// Not sure what the actual limit is (seems to vary), but let's be conservative.
|
||||||
|
const size_t maxLogLength = 512;
|
||||||
|
if (message.msg.length() < maxLogLength) {
|
||||||
|
// Log with simplified headers as Android already provides timestamp etc.
|
||||||
|
__android_log_print(mode, LOG_APP_NAME, "[%s] %s", message.log, message.msg.c_str());
|
||||||
|
} else {
|
||||||
|
std::string msg = message.msg;
|
||||||
|
|
||||||
|
// Ideally we should split at line breaks, but it's at least fairly usable anyway.
|
||||||
|
std::string first_part = msg.substr(0, maxLogLength);
|
||||||
|
__android_log_print(mode, LOG_APP_NAME, "[%s] %s", message.log, first_part.c_str());
|
||||||
|
msg = msg.substr(maxLogLength);
|
||||||
|
|
||||||
|
while (msg.length() > maxLogLength) {
|
||||||
|
std::string first_part = msg.substr(0, maxLogLength);
|
||||||
|
__android_log_print(mode, LOG_APP_NAME, "%s", first_part.c_str());
|
||||||
|
msg = msg.substr(maxLogLength);
|
||||||
|
}
|
||||||
|
// Print the final part.
|
||||||
|
__android_log_print(mode, LOG_APP_NAME, "%s", msg.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEnv* getEnv() {
|
JNIEnv* getEnv() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue