是否有标准的方法将调试打印放在库中?

Is there any standard way for putting debug print in a library?

本文关键字:打印 调试 标准 方法 是否      更新时间:2023-10-16

我见过很多用C和c++编程语言编写的库,其中每个库都有自己的调试打印方法。我见过的最常见的是:

用户为这个

设置标志
1> for error prints
2> for warning prints
3> for debug values prints
4> for getting all this print on stdout/stderr
5> for getting all this print on logfile
另一个最好的例子是Gstremer库中提供的

调试级机制

level-1 for error
level-2 for warning
level-3 for debug
level-4 for info
level-5 for log

如果用户通过5级,则所有打印将在那里;如果他设置2,那么只有错误和警告将在那里。

所以现在有没有标准或更好的方法来调试打印库/项目?

任何类似的系统都是合理的;据我所知,并没有一个事实上的标准。您可以提供将输出发送到不同文件的函数。更复杂的系统可能允许您识别不同的子系统,并为不同的子系统设置不同的调试级别。但这是相当不寻常的,这取决于库是否可以合理地细分为子系统。

没有标准的方法,每个库或项目都有自己的方案。
您提到的方案是许多实现中最常用的。