OSDN Git Service

Android: print log messages to logcat.
authorrelan <relan@users.noreply.github.com>
Thu, 16 Mar 2017 08:01:54 +0000 (11:01 +0300)
committerrelan <relan@users.noreply.github.com>
Mon, 2 Apr 2018 17:44:32 +0000 (20:44 +0300)
Android does not have syslog.

libexfat/log.c

index d62bf75..45e6403 100644 (file)
 
 #include "exfat.h"
 #include <stdarg.h>
+#ifdef __ANDROID__
+#include <android/log.h>
+#else
 #include <syslog.h>
+#endif
 #include <unistd.h>
 
 int exfat_errors;
@@ -43,8 +47,12 @@ void exfat_bug(const char* format, ...)
        va_end(ap);
        fputs(".\n", stderr);
 
+#ifdef __ANDROID__
+       __android_log_vprint(ANDROID_LOG_FATAL, PACKAGE, fmt, aq);
+#else
        if (!isatty(STDERR_FILENO))
                vsyslog(LOG_CRIT, format, aq);
+#endif
        va_end(aq);
 
        abort();
@@ -67,8 +75,12 @@ void exfat_error(const char* format, ...)
        va_end(ap);
        fputs(".\n", stderr);
 
+#ifdef __ANDROID__
+       __android_log_vprint(ANDROID_LOG_ERROR, PACKAGE, fmt, aq);
+#else
        if (!isatty(STDERR_FILENO))
                vsyslog(LOG_ERR, format, aq);
+#endif
        va_end(aq);
 }
 
@@ -89,8 +101,12 @@ void exfat_warn(const char* format, ...)
        va_end(ap);
        fputs(".\n", stderr);
 
+#ifdef __ANDROID__
+       __android_log_vprint(ANDROID_LOG_WARN, PACKAGE, fmt, aq);
+#else
        if (!isatty(STDERR_FILENO))
                vsyslog(LOG_WARNING, format, aq);
+#endif
        va_end(aq);
 }