我使用VLOG来打印log,VLOG的定义如下:
#define VLOG_IS_ON(lvl) \
((lvl) <= ::tensorflow::internal::LogMessage::MinVLogLevel())
#endif
#define VLOG(lvl) \
if (TF_PREDICT_FALSE(VLOG_IS_ON(lvl))) \
::tensorflow::internal::LogMessage(__FILE__, __LINE__, tensorflow::INFO)
const int INFO = 0; // base_logging::INFO;
const int WARNING = 1; // base_logging::WARNING;
const int ERROR = 2; // base_logging::ERROR;
const int FATAL = 3; // base_logging::FATAL;
const int NUM_SEVERITIES = 4; // base_logging::NUM_SEVERITIES;如果我将最小日志级别配置为WARNING,我将使用导出TF_CPP_MIN_VLOG_LEVEL=1,我想要的是日志仅打印WARNING和including、TATAL,但事实是仅显示WARNING和INFO日志,它们由调用
VLOG(INFO) and VLOG(WARN)这个结果合理吗?
发布于 2017-07-17 19:23:57
您可以通过TF_CPP_MIN_LOG_LEVEL (而不是TF_CPP_MIN_VLOG_LEVEL)控制日志级别,在本例中,您希望将其设置为1。
TF_CPP_MIN_VLOG_LEVEL引入了额外的调试信息,实际上是反过来工作的:它的默认值是0,并且随着它的增加,会记录更多的调试消息。
所以VLOG级别不是你通常的INFO,WARNING等LOG级别,而是一些不同的,排名相反的东西。如果仔细查看代码,您会发现LOG与日志标签(LOG(INFO) << message)一起使用,而VLOG与普通数字(VLOG(2) << message)一起使用。
实际上,VLOG消息始终记录在INFO日志级别。这意味着在任何情况下,要查看任何VLOG消息,都需要TF_CPP_MIN_LOG_LEVEL为0。
https://stackoverflow.com/questions/45141895
复制相似问题