日志中自动记录所在函数名、文件名、行号
来源:互联网 发布:sql in 10minutes下载 编辑:程序博客网 时间:2024/04/26 20:51
日志中自动记录所在函数名、文件名、行号
http://blog.csdn.net/stuhu/article/details/1876973
在后台程序运行出问题时,详尽的日志是抓错不可缺少的帮手,这里提供一个能自动记录日志触发点文件名、行号、函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__
限制是format不能是变量,必须是常量字符串,如果要记录一个变量字符串,不能像printf那样printf(s)了,要LOG("DEBUG", "%s", s)
代码:
#include <stdio.h>
#define LOG_DEBUG "DEBUG"#define LOG_TRACE "TRACE"#define LOG_ERROR "ERROR"#define LOG_INFO "INFOR"#define LOG_CRIT "CRTCL"
#define LOG(level, format, ...) \ do { \ fprintf(stderr, "[%s|%s@%s,%d] " format "\n", \ level, __func__, __FILE__, __LINE__, ##__VA_ARGS__ ); \ } while (0)
int main(){ LOG(LOG_DEBUG, "a=%d", 10); return 0;}
- 日志中自动记录所在函数名、文件名、行号
- 程序日志中自动记录所在函数名、文件名、行号,并定向输出到一个日志文件
- Python 中如何获取当前位置所在的文件名,函数名,以及行号
- c语言日志封装-输出文件名、函数名、行号
- python中获取当前位置所在的行号和函数名
- 【python系列】python 获取当前位置所在的文件名、函数名和行号
- linux编程中显示文件名,函数名,行号
- C++中打印所处的文件名,行号,函数名
- c/c++ 在catch住错误后写入日志文件,加上函数名,所在文件,所在行号
- 显示当前行号、文件名和函数名
- python 获取当前行号 函数名 文件名
- C语言 打印文件名,行号,函数名
- Java打印文件名、函数名、行号
- Android 打印文件名、函数名、行号
- printf 打印 文件名 函数名 行号
- Java打印文件名、函数名、行号
- C++输出文件名、函数名、行号
- FW:在python中获取当前位置所在的行号和函数名
- Android Makefile中如何自定义Product
- C++实现观察者模式
- R命令(2)
- Xcode中添加图片文件报如下错误解决办法:Multiple errors occurred while copying the files.
- vc6.0 c++获取当前文件夹路径
- 日志中自动记录所在函数名、文件名、行号
- java基础总结 面向对象之静态方法
- mysql 缓存
- 安装juicer
- make menuconfig 做了哪些事?
- js 去除数组重复项
- 如何成为一名软件架构师
- Python:从socket开始,搭建一个最基本功能的FTP服务器(附源码)
- mac上配置安卓开发环境