#前言
首先我们知道caffe项目用的日志系统是谷歌的开源日志系统glog。如果你自己构建了一个基于caffe的项目,然后如果你也不知道如何去设置日志系统。那么会发生下面这样的事
在一句warnning后,所有caffe源码中的LOG都会输出到控制台上,正如这句wannring所表达的意思一样,你没用InitGoogleLogging初始化,默认日志全部输出到STDERR(默认为控制台)上。
#定位源码
在libcaffe中我们找到了这个初始化函数
然后我们就可以根据glog的用法在这后面添加你要的操作了(具体百度glog用法)
举2个例子:
1 如果你不需要这些日志输出的话,在后面加上google::ShutdownGoogleLogging();
关闭日志系统即可
2 如果你想把信息重定位到特定文件可以这么做
google::SetLogDestination(google::GLOG_FATAL, "log_caffe_err.log");
google::SetLogDestination(google::GLOG_ERROR, "log_caffe_err.log");
google::SetLogDestination(google::GLOG_WARNING, "log_caffe_err.log");
google::SetLogDestination(google::GLOG_INFO, "log_caffe_info.log");
#应用
我们修改的是void GlobalInit(int* pargc, char*** pargv)
的函数体,然而这个函数并不会在libcaffe里面自己调用,也就是说如果你不手动调用的话,这段代码怎么改都不会对你项目有改变,还是会默认输出到stderr中。所以你需要在你的项目中调用这个函数GlobalInit
。调用方法参考caffe.exe的实现入口处——caffe.cpp
很简单,在使用caffe库前调用一句就行了。