// =============================================================================
//  ar_log.h -- AR-Autopilot logging facade
// =============================================================================
//
//  Thin wrapper around the ESP32 Arduino log_X / ESP_LOGX macros so that the
//  rest of the firmware uses one consistent style. Compile-time level is
//  controlled by CORE_DEBUG_LEVEL in platformio.ini.
//
//  Levels (matching ARDUHAL_LOG_LEVEL_*):
//      0 NONE
//      1 ERROR
//      2 WARN
//      3 INFO       <- default in release
//      4 DEBUG
//      5 VERBOSE    <- default in debug
// =============================================================================

#pragma once

#include <Arduino.h>

// Tag prefix conventions used across the codebase:
//   "AR/MAIN"   -- main.cpp boot/shutdown
//   "AR/PID"    -- PID loops
//   "AR/HAL"    -- hardware abstraction
//   "AR/MB"     -- Modbus slave
//   "AR/N2K"    -- NMEA 2000 consumer
//   "AR/SAFE"   -- safety / watchdog / disengage
//   "AR/SYS"    -- health / lifecycle / metrics

#define AR_LOGE(tag, fmt, ...) log_e("[%s] " fmt, tag, ##__VA_ARGS__)
#define AR_LOGW(tag, fmt, ...) log_w("[%s] " fmt, tag, ##__VA_ARGS__)
#define AR_LOGI(tag, fmt, ...) log_i("[%s] " fmt, tag, ##__VA_ARGS__)
#define AR_LOGD(tag, fmt, ...) log_d("[%s] " fmt, tag, ##__VA_ARGS__)
#define AR_LOGV(tag, fmt, ...) log_v("[%s] " fmt, tag, ##__VA_ARGS__)
