1// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#include "platform/globals.h"
6#if defined(HOST_OS_ANDROID)
7
8#include "platform/syslog.h"
9
10#include <android/log.h> // NOLINT
11#include <stdio.h> // NOLINT
12
13namespace dart {
14
15// TODO(gram): We should be buffering the data and only outputting
16// it when we see a '\n'.
17
18void Syslog::VPrint(const char* format, va_list args) {
19 // If we launch the DartVM inside "adb shell" we will only get messages
20 // (critical ones or not) if we print them to stdout/stderr.
21 // We also log using android's logging system.
22 vprintf(format, args);
23 fflush(stdout);
24 __android_log_vprint(ANDROID_LOG_INFO, "Dart", format, args);
25}
26
27void Syslog::VPrintErr(const char* format, va_list args) {
28 // If we launch the DartVM inside "adb shell" we will only get messages
29 // (critical ones or not) if we print them to stdout/stderr.
30 // We also log using android's logging system.
31 vfprintf(stderr, format, args);
32 fflush(stderr);
33 __android_log_vprint(ANDROID_LOG_ERROR, "Dart", format, args);
34}
35
36} // namespace dart
37
38#endif // defined(HOST_OS_ANDROID)
39