首页 > 其他分享 >log 工具

log 工具

时间:2024-11-17 21:21:13浏览次数:1  
标签:__ pr log ... fmt 工具 define logs

#define BUF_MAX_SIZE (1024)
enum {
SILENCE
FATAL
ERROR
NOTICE
INFO
DEBUG
TRACE
}
void pr_logs(int level, const char *fmt, ...);

int g_level = INFO;
#define mlog_trace(fmt, ...) pr_logs(TRACE, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_debug(fmt, ...) pr_logs(DEBUG, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_info(fmt, ...) pr_logs(INFO, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_notice(fmt, ...) pr_logs(NOTICE, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_error(fmt, ...) pr_logs(ERROR, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_fatal(fmt, ...) pr_logs(FATAL, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)

void pr_logs(int level, const char *fmt, ...)
{
if (g_level < level){
return;
}
va_list arg_list;
char buf[BUF_MAX_SIZE];
memset(buf,0,sizeof(buf));
va_start(arg_list, fmt);
vsnprintf(buf, sizeof(buf), fmt, arg_list);
fprintf(stdout,"%s\n",buf);
va_end(arg_list);
}

标签:__,pr,log,...,fmt,工具,define,logs
From: https://www.cnblogs.com/watermeloncc/p/18550845

相关文章

  • 高效优化 AI 文本——推荐一个好用的免费工具:BEXI.ai
    摘要:BEXI.ai是一款免费且简单好用的工具,能快速将AI生成的文本优化为更自然流畅的内容,适合内容创作者、营销人员等需要高效提升文本质量的人群。作为一名内容创作者,我最近发现了一款非常实用的AI文本优化工具——BEXI.ai。它的功能非常直观,无需复杂操作即可将冷冰冰的AI生......
  • 使用 ESP-IDF 进行esp32-c3开发第二步:Linux 和 macOS 平台工具链的标准设置
    先上文档,后面实践Linux和macOS平台工具链的标准设置[English]详细安装步骤请根据下方详细步骤,完成安装过程。设置开发环境以下是为ESP32-C3设置ESP-IDF的具体步骤。第一步:安装准备第二步:获取ESP-IDF第三步:设置工具第四步:设置环境变量第五步:开始使用ES......
  • QObject,QMainWindpw,QWidget,QDialog介绍
    QObjectQObject的角色和特点在Qt框架中,QObject是整个对象模型的核心基类,它为Qt对象树和信号-槽机制提供了基础支持。很多Qt的类(包括QWidget、QDialog、QMainWindow)都直接或间接继承自QObject。QObject的核心功能对象树管理(ObjectTree)QObject提供了父子关......
  • 阿里巴巴搜索API:电商商品信息实时更新的工具
    在电子商务领域,商品信息的实时更新对于保持竞争力至关重要。阿里巴巴提供的搜索API,特别是智能开放搜索OpenSearch,为电商平台提供了强大的工具,以实现商品信息的实时更新和高效管理。本文将探讨阿里巴巴搜索API的功能、优势,并提供代码示例,展示如何利用这些API进行商品信息的实时......
  • zblog获取当前页面的标题/链接/ID等属性
    方法:使用全局变量$zbp。在函数内部使用global$zbp;声明。常用属性:当前页面链接:$zbp->currenturl当前页面标题:$zbp->template->GetTags('title')当前页面ID:分类页:$zbp->template->GetTags('category')->ID文章页:$zbp->template->GetTags('article�......
  • 帝国CMS修改网站logo,帝国CMS Logo更换步骤
    更换帝国CMS网站的Logo通常涉及修改HTML和CSS文件,以下是一些具体步骤:上传新Logo:将新Logo文件上传到网站服务器,通常放在 e/data/images 文件夹中。记下新Logo的路径,例如 /e/data/images/new-logo.png。修改HTML文件:打开网站的HTML文件,找到Logo的 <img> 标签。更......
  • MyBatis封装成工具类:入门大学生的极限
    第一篇SDN文章,也不咋会写。这是自己总结了很久才实现的。废话少说直接上代码。我得先研究一下代码咋弄上来。欧克。找到了。那么展示。这是是主工具java类:publicclassMybatisTool{//构造方法私有化privateMybatisTool(){}//静态内部类privates......
  • Windows备份工具——FreeFileSync
    FreeFileSync简介是一款功能强大且易于使用的开源的文件夹比较同步软件能够在Windows系统轻松实现与远程主机的文件同步。同时支持Windows、Linux、mac下载链接:https://freefilesync.org/download.php程序安装后在桌面会创建两个快捷方式,绿色为同步软件任务编辑器,红......
  • UI设计中神之辅助工具!取色神器!
    我在做前端设计的时候,经常行的会去参考对标网站,包括一些配色还有一些CSS样式,做过前端的都知道,配色是非常重要的,有些更高端的UI设计,他们的颜色搭配和选择非常讲究。我之前参考对方颜色的时候,都是直接截图,然后放到fireworks里或者PS里,把颜色吸取出来,这个看似很小的动作,非常的耗......
  • Linux开发工具:Vim 与 gcc,打造高效编程的魔法双剑
    文章目录一、初识Vim模式二、vim基本操作2.1基础操作2.2命令模式/正常模式2.2.1光标定位2.2.2复制粘贴、删除2.2.3撤销2.2.4替换字符2.2.5替换模式2.3底行模式2.3.1退出vim和**保存文件**2.3.2定位文本字符串2.3.3命令2.3.4实现分屏2.3.5替换指定字符串2.4补充指令2.4......