blob: ad351e7341a0a74bbb1c24709705104e3f5eadb3 [file] [log] [blame]
brians343bc112013-02-10 01:53:46 +00001#include <stdio.h>
2#include <stdlib.h>
3#include <errno.h>
4#include <time.h>
5#include <string.h>
6#include <string>
7#include <unistd.h>
8#include <sys/types.h>
9#include <pwd.h>
10#include <fcntl.h>
11#include <inttypes.h>
12
Brian Silverman14fd0fb2014-01-14 21:42:01 -080013#include "aos/linux_code/logging/linux_logging.h"
Brian Silvermanfe9b7a22014-02-10 15:03:42 -080014#include "aos/linux_code/logging/binary_log_file.h"
Brian Silverman14fd0fb2014-01-14 21:42:01 -080015#include "aos/linux_code/init.h"
16#include "aos/linux_code/ipc_lib/queue.h"
Brian Silvermanf665d692013-02-17 22:11:39 -080017#include "aos/common/logging/logging_impl.h"
Brian Silvermanab6615c2013-03-05 20:29:29 -080018#include "aos/common/time.h"
brians343bc112013-02-10 01:53:46 +000019
Brian Silvermanf665d692013-02-17 22:11:39 -080020namespace aos {
21namespace logging {
Brian Silverman14fd0fb2014-01-14 21:42:01 -080022namespace linux_code {
Brian Silvermanf665d692013-02-17 22:11:39 -080023namespace {
brians343bc112013-02-10 01:53:46 +000024
Brian Silvermanab6615c2013-03-05 20:29:29 -080025int LogStreamerMain() {
Brian Silvermanf665d692013-02-17 22:11:39 -080026 InitNRT();
brians343bc112013-02-10 01:53:46 +000027
Brian Silvermanab6615c2013-03-05 20:29:29 -080028 const time::Time now = time::Time::Now();
Brian Silverman8efe23e2013-07-07 23:31:37 -070029 printf("starting at %" PRId32 "s%" PRId32 "ns-----------------------------\n",
Brian Silvermanab6615c2013-03-05 20:29:29 -080030 now.sec(), now.nsec());
brians343bc112013-02-10 01:53:46 +000031
32 int index = 0;
33 while (true) {
Brian Silverman08661c72013-09-01 17:24:38 -070034 const LogMessage *const msg = ReadNext(RawQueue::kBlock, &index);
brians343bc112013-02-10 01:53:46 +000035 if (msg == NULL) continue;
brians343bc112013-02-10 01:53:46 +000036
Brian Silvermanf665d692013-02-17 22:11:39 -080037 internal::PrintMessage(stdout, *msg);
brians343bc112013-02-10 01:53:46 +000038
Brian Silverman14fd0fb2014-01-14 21:42:01 -080039 logging::linux_code::Free(msg);
brians343bc112013-02-10 01:53:46 +000040 }
41
Brian Silvermanf665d692013-02-17 22:11:39 -080042 Cleanup();
43 return 0;
44}
45
46} // namespace
Brian Silverman14fd0fb2014-01-14 21:42:01 -080047} // namespace linux_code
Brian Silvermanf665d692013-02-17 22:11:39 -080048} // namespace logging
49} // namespace aos
50
51int main() {
Brian Silverman14fd0fb2014-01-14 21:42:01 -080052 return ::aos::logging::linux_code::LogStreamerMain();
brians343bc112013-02-10 01:53:46 +000053}