/
vshmidt
/
llama.cpp
Обзор
Документация
Войти
/
vshmidt
/
llama.cpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/llama.android/lib/src/main/cpp/logging.h
61 строка
2 KB
Naco Siren
llama.android : Rewrite Android binding (w/o cpu_features dep) (#17413)
17 дек 2025, 11:14
Не верифицирован
17 дек 2025, 11:14
5c0d188
Код
Авторство
О чём код?
// // Created by Han Yin on 10/31/25. // #ifndef AICHAT_LOGGING_H #define AICHAT_LOGGING_H #endif //AICHAT_LOGGING_H #pragma once #include <android/log.h> #ifndef LOG_TAG #define LOG_TAG "ai-chat" #endif #ifndef LOG_MIN_LEVEL #if defined(NDEBUG) #define LOG_MIN_LEVEL ANDROID_LOG_INFO #else #define LOG_MIN_LEVEL ANDROID_LOG_VERBOSE #endif #endif static inline int ai_should_log(int prio) { return __android_log_is_loggable(prio, LOG_TAG, LOG_MIN_LEVEL); } #if LOG_MIN_LEVEL <= ANDROID_LOG_VERBOSE #define LOGv(...) do { if (ai_should_log(ANDROID_LOG_VERBOSE)) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__); } while (0) #else #define LOGv(...) ((void)0) #endif #if LOG_MIN_LEVEL <= ANDROID_LOG_DEBUG #define LOGd(...) do { if (ai_should_log(ANDROID_LOG_DEBUG)) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__); } while (0) #else #define LOGd(...) ((void)0) #endif #define LOGi(...) do { if (ai_should_log(ANDROID_LOG_INFO )) __android_log_print(ANDROID_LOG_INFO , LOG_TAG, __VA_ARGS__); } while (0) #define LOGw(...) do { if (ai_should_log(ANDROID_LOG_WARN )) __android_log_print(ANDROID_LOG_WARN , LOG_TAG, __VA_ARGS__); } while (0) #define LOGe(...) do { if (ai_should_log(ANDROID_LOG_ERROR)) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__); } while (0) static inline int android_log_prio_from_ggml(enum ggml_log_level level) { switch (level) { case GGML_LOG_LEVEL_ERROR: return ANDROID_LOG_ERROR; case GGML_LOG_LEVEL_WARN: return ANDROID_LOG_WARN; case GGML_LOG_LEVEL_INFO: return ANDROID_LOG_INFO; case GGML_LOG_LEVEL_DEBUG: return ANDROID_LOG_DEBUG; default: return ANDROID_LOG_DEFAULT; } } static inline void aichat_android_log_callback(enum ggml_log_level level, const char* text, void* /*user*/) { const int prio = android_log_prio_from_ggml(level); if (!ai_should_log(prio)) return; __android_log_write(prio, LOG_TAG, text); }