首页 > 解决方案 > 禁止在控制台上登录 ceres

问题描述

下面是在 ceres-solver 中计算协方差的虚拟片段

    ceres::Covariance::Options covarianceOptions;
    covarianceOptions.algorithm_type = ceres::SPARSE_QR;
    ceres::Covariance covarianceComputation(covarianceOptions);
    
    if( not covarianceComputation.Compute(paramBlocks, ceresProblem) ) {
        // do stuff
    }
    else {
        // return
    }

ceresProblem不合适时,基于 的协方差计算可能会失败algorithm_type。例如,控制台上可能会显示以下错误。

E0629 13:44:55.121646  9832 covariance_impl.cc:669] Jacobian matrix is rank deficient. Number of columns: 1204 rank: 1118

如何抑制此控制台输出/日志记录?如何修改ceres中的日志记录级别?


相关问题:Ceres Solver:无法禁用日志记录(google glog),但未解决上述问题。

标签: c++loggingceres-solver

解决方案


设置以下环境变量将禁止登录 ceres:

GLOG_logtostderr=1
GLOG_stderrthreshold=3
GLOG_minloglevel=3
GLOG_v=-3
  • GLOG_logtostderr:将消息记录到标准错误而不是日志文件

  • GLOG_stderrthreshold:除了日志文件之外,还将此级别或更高级别的日志消息复制到标准错误。严重级别 INFO、WARNING、ERROR 和 FATAL 的数量分别为 0、1、2 和 3。

  • GLOG_minloglevel:记录处于或高于此级别的消息。同样,严重级别 INFO、WARNING、ERROR 和 FATAL 的数量分别为 0、1、2 和 3

  • GLOG_v:显示 m 小于或等于此标志值的所有 VLOG(m) 消息。级别 INFO、WARNING、ERROR 和 FATAL 的数字是 0、-1、-2 和 -3

参考:http ://rpg.ifi.uzh.ch/docs/glog.html


推荐阅读