#ifndef LOGGING_H
#define LOGGING_H

#include <QDebug>
#include <QLoggingCategory>
#include <QString>
#include <cstring>


/**
 * @file logging.h
 * @brief 日志宏定义，提供带文件名和函数名的日志输出，并异步存储到数据库
 */

// 获取文件名（不含路径）
#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)

// 构建来源字符串的辅助宏
// #define __LOG_SOURCE__ (QString(__FILENAME__) + "." + QString(__FUNCTION__))

// 日志宏，格式：[文件名.函数名] 消息

#define LOG_DEBUG() \
    qDebug() << "[" << __FILENAME__ << "/" << __FUNCTION__ << "]"

#define LOG_ERROR() \
    qCritical() << "[" << __FILENAME__ << "/" << __FUNCTION__ << "]"

#define LOG_INFO() \
    qInfo() << "[" << __FILENAME__ << "/" << __FUNCTION__ << "]"

#define LOG_WARNING() \
    qWarning() << "[" << __FILENAME__ << "/" << __FUNCTION__ << "]"

#endif // LOGGING_H

