LogBackend: use __android_log_print() on Android
This commit is contained in:
parent
7757e59e78
commit
90114514a9
@ -36,6 +36,33 @@
|
|||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ANDROID
|
||||||
|
#include <android/log.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
ToAndroidLogLevel(LogLevel log_level)
|
||||||
|
{
|
||||||
|
switch (log_level) {
|
||||||
|
case LogLevel::DEBUG:
|
||||||
|
return ANDROID_LOG_DEBUG;
|
||||||
|
|
||||||
|
case LogLevel::INFO:
|
||||||
|
case LogLevel::DEFAULT:
|
||||||
|
return ANDROID_LOG_INFO;
|
||||||
|
|
||||||
|
case LogLevel::WARNING:
|
||||||
|
return ANDROID_LOG_WARN;
|
||||||
|
|
||||||
|
case LogLevel::ERROR:
|
||||||
|
return ANDROID_LOG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(false);
|
||||||
|
gcc_unreachable();
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
static LogLevel log_threshold = LogLevel::INFO;
|
static LogLevel log_threshold = LogLevel::INFO;
|
||||||
|
|
||||||
#ifdef HAVE_GLIB
|
#ifdef HAVE_GLIB
|
||||||
@ -176,9 +203,16 @@ FileLog(const Domain &domain, const char *message)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* !ANDROID */
|
||||||
|
|
||||||
void
|
void
|
||||||
Log(const Domain &domain, LogLevel level, const char *msg)
|
Log(const Domain &domain, LogLevel level, const char *msg)
|
||||||
{
|
{
|
||||||
|
#ifdef ANDROID
|
||||||
|
__android_log_print(ToAndroidLogLevel(level), "MPD",
|
||||||
|
"%s: %s", domain.GetName(), msg);
|
||||||
|
#else
|
||||||
|
|
||||||
if (level < log_threshold)
|
if (level < log_threshold)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -190,4 +224,5 @@ Log(const Domain &domain, LogLevel level, const char *msg)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
FileLog(domain, msg);
|
FileLog(domain, msg);
|
||||||
|
#endif /* !ANDROID */
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,8 @@
|
|||||||
|
|
||||||
static constexpr Domain log_domain("log");
|
static constexpr Domain log_domain("log");
|
||||||
|
|
||||||
|
#ifndef ANDROID
|
||||||
|
|
||||||
static int out_fd;
|
static int out_fd;
|
||||||
static AllocatedPath out_path = AllocatedPath::Null();
|
static AllocatedPath out_path = AllocatedPath::Null();
|
||||||
|
|
||||||
@ -101,16 +103,29 @@ parse_log_level(const char *value, unsigned line)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
log_early_init(bool verbose)
|
log_early_init(bool verbose)
|
||||||
{
|
{
|
||||||
|
#ifdef ANDROID
|
||||||
|
(void)verbose;
|
||||||
|
#else
|
||||||
if (verbose)
|
if (verbose)
|
||||||
SetLogThreshold(LogLevel::DEBUG);
|
SetLogThreshold(LogLevel::DEBUG);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
log_init(bool verbose, bool use_stdout, Error &error)
|
log_init(bool verbose, bool use_stdout, Error &error)
|
||||||
{
|
{
|
||||||
|
#ifdef ANDROID
|
||||||
|
(void)verbose;
|
||||||
|
(void)use_stdout;
|
||||||
|
(void)error;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
const struct config_param *param;
|
const struct config_param *param;
|
||||||
|
|
||||||
#ifdef HAVE_GLIB
|
#ifdef HAVE_GLIB
|
||||||
@ -151,8 +166,11 @@ log_init(bool verbose, bool use_stdout, Error &error)
|
|||||||
log_init_file(param->line, error);
|
log_init_file(param->line, error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef ANDROID
|
||||||
|
|
||||||
static void
|
static void
|
||||||
close_log_files(void)
|
close_log_files(void)
|
||||||
{
|
{
|
||||||
@ -161,16 +179,22 @@ close_log_files(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
log_deinit(void)
|
log_deinit(void)
|
||||||
{
|
{
|
||||||
|
#ifndef ANDROID
|
||||||
close_log_files();
|
close_log_files();
|
||||||
out_path = AllocatedPath::Null();
|
out_path = AllocatedPath::Null();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void setup_log_output(bool use_stdout)
|
void setup_log_output(bool use_stdout)
|
||||||
{
|
{
|
||||||
|
#ifdef ANDROID
|
||||||
|
(void)use_stdout;
|
||||||
|
#else
|
||||||
if (use_stdout)
|
if (use_stdout)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -193,10 +217,14 @@ void setup_log_output(bool use_stdout)
|
|||||||
#ifdef HAVE_GLIB
|
#ifdef HAVE_GLIB
|
||||||
SetLogCharset(nullptr);
|
SetLogCharset(nullptr);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int cycle_log_files(void)
|
int cycle_log_files(void)
|
||||||
{
|
{
|
||||||
|
#ifdef ANDROID
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
if (out_path.IsNull())
|
if (out_path.IsNull())
|
||||||
@ -217,4 +245,5 @@ int cycle_log_files(void)
|
|||||||
redirect_logs(fd);
|
redirect_logs(fd);
|
||||||
FormatDebug(log_domain, "Done cycling log files");
|
FormatDebug(log_domain, "Done cycling log files");
|
||||||
return 0;
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user