You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					61 lines
				
				1.7 KiB
			
		
		
			
		
	
	
					61 lines
				
				1.7 KiB
			| 
								 
											6 years ago
										 
									 | 
							
								#include <cstdio>
							 | 
						||
| 
								 | 
							
								#include <cstdlib>
							 | 
						||
| 
								 | 
							
								#include <cassert>
							 | 
						||
| 
								 | 
							
								#include <android/log.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//#include <log/log.h>
							 | 
						||
| 
								 | 
							
								#include <log/logger.h>
							 | 
						||
| 
								 | 
							
								#include <log/logprint.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "common/timing.h"
							 | 
						||
| 
								 | 
							
								#include "messaging.hpp"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int main() {
							 | 
						||
| 
								 | 
							
								  int err;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  struct logger_list *logger_list = android_logger_list_alloc(ANDROID_LOG_RDONLY, 0, 0);
							 | 
						||
| 
								 | 
							
								  assert(logger_list);
							 | 
						||
| 
								 | 
							
								  struct logger *main_logger = android_logger_open(logger_list, LOG_ID_MAIN);
							 | 
						||
| 
								 | 
							
								  assert(main_logger);
							 | 
						||
| 
								 | 
							
								  struct logger *radio_logger = android_logger_open(logger_list, LOG_ID_RADIO);
							 | 
						||
| 
								 | 
							
								  assert(radio_logger);
							 | 
						||
| 
								 | 
							
								  struct logger *system_logger = android_logger_open(logger_list, LOG_ID_SYSTEM);
							 | 
						||
| 
								 | 
							
								  assert(system_logger);
							 | 
						||
| 
								 | 
							
								  struct logger *crash_logger = android_logger_open(logger_list, LOG_ID_CRASH);
							 | 
						||
| 
								 | 
							
								  assert(crash_logger);
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								  struct logger *kernel_logger = android_logger_open(logger_list, (log_id_t)5); // LOG_ID_KERNEL
							 | 
						||
| 
								 | 
							
								  assert(kernel_logger);
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								  PubMaster pm({"androidLog"});
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								
							 | 
						||
| 
								 | 
							
								  while (1) {
							 | 
						||
| 
								 | 
							
								    log_msg log_msg;
							 | 
						||
| 
								 | 
							
								    err = android_logger_list_read(logger_list, &log_msg);
							 | 
						||
| 
								 | 
							
								    if (err <= 0) {
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    AndroidLogEntry entry;
							 | 
						||
| 
								 | 
							
								    err = android_log_processLogBuffer(&log_msg.entry_v1, &entry);
							 | 
						||
| 
								 | 
							
								    if (err < 0) {
							 | 
						||
| 
								 | 
							
								      continue;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    capnp::MallocMessageBuilder msg;
							 | 
						||
| 
								 | 
							
								    cereal::Event::Builder event = msg.initRoot<cereal::Event>();
							 | 
						||
| 
								 | 
							
								    event.setLogMonoTime(nanos_since_boot());
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								    auto androidEntry = event.initAndroidLog();
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								    androidEntry.setId(log_msg.id());
							 | 
						||
| 
								 | 
							
								    androidEntry.setTs(entry.tv_sec * 1000000000ULL + entry.tv_nsec);
							 | 
						||
| 
								 | 
							
								    androidEntry.setPriority(entry.priority);
							 | 
						||
| 
								 | 
							
								    androidEntry.setPid(entry.pid);
							 | 
						||
| 
								 | 
							
								    androidEntry.setTid(entry.tid);
							 | 
						||
| 
								 | 
							
								    androidEntry.setTag(entry.tag);
							 | 
						||
| 
								 | 
							
								    androidEntry.setMessage(entry.message);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								    pm.send("androidLog", msg);
							 | 
						||
| 
								 
											6 years ago
										 
									 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  android_logger_list_close(logger_list);
							 | 
						||
| 
								 | 
							
								  return 0;
							 | 
						||
| 
								 | 
							
								}
							 |