qt 自定义 log

#include <windows.h>
#include <stdio.h>

void xlog_console_open()
{
    FreeConsole();
    AllocConsole();
    AttachConsole(GetCurrentProcessId());

    freopen("CON", "w", stdout);
    freopen("CON", "w", stderr);
    freopen("CON", "r", stdin);
}
#ifndef xlog_hpp
#define xlog_hpp

#define xlog_level xlog_level_info

#include <QDebug>
#include <QDateTime>

void xlog_console_open();

#define xlog_level_nano 0
#define xlog_level_error 1
#define xlog_level_warn 2
#define xlog_level_info 3
#define xlog_level_debug 4

#define xlog(level, level_name, format, ...)                                                                                                                                                                  \
    do                                                                                                                                                                                                          \
    {                                                                                                                                                                                                           \
        if (level > xlog_level)                                                                                                                                                                               \
            break;                                                                                                                                                                                              \
                                                                                                                                                                                                                \
        QString file_name(__FILE__);                                                                                                                                                                            \
        qDebug("%s: " format,                                                                                                                                                                                   \
               QString("%1 %2 %3 L%4").arg(QDateTime::currentDateTime().toString("yyyy/M/d hh:mm:ss:zzz")).arg(file_name.mid(file_name.lastIndexOf("\\") + 1)).arg(level_name).arg(__LINE__).toLatin1().data(), \
               ##__VA_ARGS__);                                                                                                                                                                                  \
    } while (0)

#define xlog_error(format, ...) xlog(xlog_level_error, "[error]", format, ##__VA_ARGS__)
#define xlog_warn(format, ...) xlog(xlog_level_warn, "[warn]", format, ##__VA_ARGS__)
#define xlog_info(format, ...) xlog(xlog_level_info, "[info]", format, ##__VA_ARGS__)
#define xlog_debug(format, ...) xlog(xlog_level_debug, "[debug]", format, ##__VA_ARGS__)

#endif

xlog_debug("%s", QString("data %1: 0x%2").arg(i).arg(QString::number(data[i], 16)).toLatin1().data());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值