| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| #include "platform/globals.h" | |
| #if defined(DART_HOST_OS_ANDROID) | |
| #include "platform/syslog.h" | |
| #include <android/log.h> // NOLINT | |
| #include <stdio.h> // NOLINT | |
| namespace dart { | |
| // TODO(gram): We should be buffering the data and only outputting | |
| // it when we see a '\n'. | |
| void Syslog::VPrint(const char* format, va_list args) { | |
| // If we launch the DartVM inside "adb shell" we will only get messages | |
| // (critical ones or not) if we print them to stdout/stderr. | |
| // We also log using android's logging system. | |
| va_list stdio_args; | |
| va_copy(stdio_args, args); | |
| vprintf(format, stdio_args); | |
| fflush(stdout); | |
| va_end(stdio_args); | |
| va_list log_args; | |
| va_copy(log_args, args); | |
| __android_log_vprint(ANDROID_LOG_INFO, "Dart", format, log_args); | |
| va_end(log_args); | |
| } | |
| void Syslog::VPrintErr(const char* format, va_list args) { | |
| // If we launch the DartVM inside "adb shell" we will only get messages | |
| // (critical ones or not) if we print them to stdout/stderr. | |
| // We also log using android's logging system. | |
| va_list stdio_args; | |
| va_copy(stdio_args, args); | |
| vfprintf(stderr, format, stdio_args); | |
| fflush(stderr); | |
| va_end(stdio_args); | |
| va_list log_args; | |
| va_copy(log_args, args); | |
| __android_log_vprint(ANDROID_LOG_ERROR, "Dart", format, log_args); | |
| va_end(log_args); | |
| } | |
| } // namespace dart | |
| #endif // defined(DART_HOST_OS_ANDROID) |