我正在编写一个程序,我想编写一个自定义日志记录工具(例如诊断,通知,警告,错误)。
我应该使用stdout
或stderr
流来执行此操作吗?它是各种解释器,用户可以要求它打印输出。
编辑:请停止向我推荐日志记录框架:(
答案 0 :(得分:36)
常规输出(运行程序的实际结果)应该stdout
,stderr
上提到的内容(例如诊断,通知,警告,错误)。
如果没有“常规输出”,我会说你选择哪一个并不重要。您可能会认为日志记录是唯一的输出,因此应该转到stdout
。或者你可以说它仍然是“特殊信息”,应该转到stderr
。
答案 1 :(得分:10)
你是否在stdout
写了别的东西?如果答案是Yes
那么有人就很难区分正常流量和用于从stdout
重定向的文件中间的错误。
如果将stdout
用作其他程序的输入怎么办?它能够解析这个调试信息吗?在这种情况下,最好只将严重错误写入stderr
。如果您需要编写其他内容,可以考虑写入其他日志文件。