|
|
|
@ -1,6 +1,8 @@ |
|
|
|
|
#include <sys/time.h> |
|
|
|
|
#include <sys/resource.h> |
|
|
|
|
|
|
|
|
|
#include <memory> |
|
|
|
|
|
|
|
|
|
#include <android/log.h> |
|
|
|
|
#include <log/logger.h> |
|
|
|
|
#include <log/logprint.h> |
|
|
|
@ -17,29 +19,28 @@ int main() { |
|
|
|
|
struct timespec cur_time; |
|
|
|
|
clock_gettime(CLOCK_REALTIME, &cur_time); |
|
|
|
|
log_time last_log_time(cur_time); |
|
|
|
|
logger_list *logger_list = nullptr; |
|
|
|
|
|
|
|
|
|
while (!do_exit) { |
|
|
|
|
// setup android logging
|
|
|
|
|
if (!logger_list) { |
|
|
|
|
logger_list = android_logger_list_alloc_time(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, last_log_time, 0); |
|
|
|
|
} |
|
|
|
|
std::unique_ptr<logger_list, decltype(&android_logger_list_free)> logger_list( |
|
|
|
|
android_logger_list_alloc_time(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, last_log_time, 0), |
|
|
|
|
&android_logger_list_free); |
|
|
|
|
assert(logger_list); |
|
|
|
|
|
|
|
|
|
struct logger *main_logger = android_logger_open(logger_list, LOG_ID_MAIN); |
|
|
|
|
struct logger *main_logger = android_logger_open(logger_list.get(), LOG_ID_MAIN); |
|
|
|
|
assert(main_logger); |
|
|
|
|
struct logger *radio_logger = android_logger_open(logger_list, LOG_ID_RADIO); |
|
|
|
|
struct logger *radio_logger = android_logger_open(logger_list.get(), LOG_ID_RADIO); |
|
|
|
|
assert(radio_logger); |
|
|
|
|
struct logger *system_logger = android_logger_open(logger_list, LOG_ID_SYSTEM); |
|
|
|
|
struct logger *system_logger = android_logger_open(logger_list.get(), LOG_ID_SYSTEM); |
|
|
|
|
assert(system_logger); |
|
|
|
|
struct logger *crash_logger = android_logger_open(logger_list, LOG_ID_CRASH); |
|
|
|
|
struct logger *crash_logger = android_logger_open(logger_list.get(), LOG_ID_CRASH); |
|
|
|
|
assert(crash_logger); |
|
|
|
|
struct logger *kernel_logger = android_logger_open(logger_list, (log_id_t)5); // LOG_ID_KERNEL
|
|
|
|
|
struct logger *kernel_logger = android_logger_open(logger_list.get(), (log_id_t)5); // LOG_ID_KERNEL
|
|
|
|
|
assert(kernel_logger); |
|
|
|
|
|
|
|
|
|
while (!do_exit) { |
|
|
|
|
log_msg log_msg; |
|
|
|
|
int err = android_logger_list_read(logger_list, &log_msg); |
|
|
|
|
int err = android_logger_list_read(logger_list.get(), &log_msg); |
|
|
|
|
if (err <= 0) break; |
|
|
|
|
|
|
|
|
|
AndroidLogEntry entry; |
|
|
|
@ -61,14 +62,8 @@ int main() { |
|
|
|
|
pm.send("androidLog", msg); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
android_logger_list_free(logger_list); |
|
|
|
|
logger_list = NULL; |
|
|
|
|
util::sleep_for(500); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (logger_list) { |
|
|
|
|
android_logger_list_free(logger_list); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|