Module: Mesa Branch: main Commit: 337d58f6fcac11488f2a34aae0008b8dfe1705c2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=337d58f6fcac11488f2a34aae0008b8dfe1705c2
Author: Chia-I Wu <[email protected]> Date: Fri Feb 17 14:58:02 2023 -0800 util/log: refactor mesa_log Add logger_file and logger_android. Reviewed-by: Emma Anholt <[email protected]> Reviewed-by: Jesse Natalie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21454> --- src/util/log.c | 74 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 25 deletions(-) diff --git a/src/util/log.c b/src/util/log.c index 140485ff8c6..0fbe5be9513 100644 --- a/src/util/log.c +++ b/src/util/log.c @@ -35,7 +35,45 @@ #include "util/log.h" #include "util/ralloc.h" +#ifndef ANDROID + +static inline const char * +level_to_str(enum mesa_log_level l) +{ + switch (l) { + case MESA_LOG_ERROR: return "error"; + case MESA_LOG_WARN: return "warning"; + case MESA_LOG_INFO: return "info"; + case MESA_LOG_DEBUG: return "debug"; + } + + unreachable("bad mesa_log_level"); +} + +static void +logger_file(enum mesa_log_level level, + const char *tag, + const char *format, + va_list va) +{ +#if !DETECT_OS_WINDOWS + flockfile(stderr); +#endif + + fprintf(stderr, "%s: %s: ", tag, level_to_str(level)); + vfprintf(stderr, format, va); + if (format[strlen(format) - 1] != '\n') + fprintf(stderr, "\n"); + +#if !DETECT_OS_WINDOWS + funlockfile(stderr); +#endif +} + +#endif /* !ANDROID */ + #ifdef ANDROID + static inline android_LogPriority level_to_android(enum mesa_log_level l) { @@ -48,22 +86,17 @@ level_to_android(enum mesa_log_level l) unreachable("bad mesa_log_level"); } -#endif -#ifndef ANDROID -static inline const char * -level_to_str(enum mesa_log_level l) +static void +logger_android(enum mesa_log_level level, + const char *tag, + const char *format, + va_list va) { - switch (l) { - case MESA_LOG_ERROR: return "error"; - case MESA_LOG_WARN: return "warning"; - case MESA_LOG_INFO: return "info"; - case MESA_LOG_DEBUG: return "debug"; - } - - unreachable("bad mesa_log_level"); + __android_log_vprint(level_to_android(level), tag, format, va); } -#endif + +#endif /* ANDROID */ void mesa_log(enum mesa_log_level level, const char *tag, const char *format, ...) @@ -79,19 +112,10 @@ void mesa_log_v(enum mesa_log_level level, const char *tag, const char *format, va_list va) { -#ifdef ANDROID - __android_log_vprint(level_to_android(level), tag, format, va); +#ifndef ANDROID + logger_file(level, tag, format, va); #else -#if !DETECT_OS_WINDOWS - flockfile(stderr); -#endif - fprintf(stderr, "%s: %s: ", tag, level_to_str(level)); - vfprintf(stderr, format, va); - if (format[strlen(format) - 1] != '\n') - fprintf(stderr, "\n"); -#if !DETECT_OS_WINDOWS - funlockfile(stderr); -#endif + logger_android(level, tag, format, va); #endif }
