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.
38 lines
1.1 KiB
38 lines
1.1 KiB
4 years ago
|
#include <assert.h>
|
||
|
#include <string>
|
||
|
|
||
|
#include "common/swaglog.h"
|
||
|
#include "common/util.h"
|
||
|
#include "logger.h"
|
||
|
#include "messaging.hpp"
|
||
|
|
||
|
int main(int argc, char** argv) {
|
||
|
LoggerState logger;
|
||
|
logger_init(&logger, "bootlog", false);
|
||
|
|
||
|
char segment_path[4096];
|
||
|
int err = logger_next(&logger, LOG_ROOT.c_str(), segment_path, sizeof(segment_path), nullptr);
|
||
|
assert(err == 0);
|
||
|
LOGW("bootlog to %s", segment_path);
|
||
|
|
||
|
MessageBuilder msg;
|
||
|
auto boot = msg.initEvent().initBoot();
|
||
|
|
||
|
boot.setWallTimeNanos(nanos_since_epoch());
|
||
|
|
||
|
std::string lastKmsg = util::read_file("/sys/fs/pstore/console-ramoops");
|
||
|
boot.setLastKmsg(capnp::Data::Reader((const kj::byte*)lastKmsg.data(), lastKmsg.size()));
|
||
|
|
||
|
std::string lastPmsg = util::read_file("/sys/fs/pstore/pmsg-ramoops-0");
|
||
|
boot.setLastPmsg(capnp::Data::Reader((const kj::byte*)lastPmsg.data(), lastPmsg.size()));
|
||
|
|
||
|
std::string launchLog = util::read_file("/tmp/launch_log");
|
||
|
boot.setLaunchLog(capnp::Text::Reader(launchLog.data(), launchLog.size()));
|
||
|
|
||
|
auto bytes = msg.toBytes();
|
||
|
logger_log(&logger, bytes.begin(), bytes.size(), false);
|
||
|
|
||
|
logger_close(&logger);
|
||
|
return 0;
|
||
|
}
|