参考日志:

http://blog.csdn.net/sunshine_in_moon/article/details/53529028

http://blog.csdn.net/lishanlu136/article/details/51491301

 

修改caffe-mastersrccaffe文件夹下的common.cpp文件,或者用vs打开caffe解决方案。

caffe生成log日志

编译common.cpp文件。

添加头文件

#include <boost/date_time.hpp>  
#include <direct.h>  

找到GlobalInit函数,向其中添加代码

void GlobalInit(int* pargc, char*** pargv) {
  // Google flags.
  ::gflags::ParseCommandLineFlags(pargc, pargv, true);
  // Google logging.
  
    std::string FLAGS_log_dir="./log/";//存放日志文件的文件夹路径,我们可以自己指定  
    _mkdir(FLAGS_log_dir.c_str()); 
	FLAGS_colorlogtostderr = true;//设置输出到屏幕的日志显示相应颜色
    std::string LOG_INFO_FILE;  
    std::string LOG_WARNING_FILE;  
    std::string LOG_ERROR_FILE;  
    std::string LOG_FATAL_FILE;  
    std::string now_time = boost::posix_time::to_iso_extended_string(boost::posix_time::second_clock::local_time());  
    now_time[13] = '-';  
    now_time[16] = '-';  
    LOG_INFO_FILE = FLAGS_log_dir + "INFO" + now_time + ".txt";  
    google::SetLogDestination(google::GLOG_INFO, LOG_INFO_FILE.c_str());  
    LOG_WARNING_FILE = FLAGS_log_dir + "WARNING" + now_time + ".txt";  
    google::SetLogDestination(google::GLOG_WARNING, LOG_WARNING_FILE.c_str());  
    LOG_ERROR_FILE = FLAGS_log_dir + "ERROR" + now_time + ".txt";  
    google::SetLogDestination(google::GLOG_ERROR, LOG_ERROR_FILE.c_str());  
    LOG_FATAL_FILE = FLAGS_log_dir + "FATAL" + now_time + ".txt";  
    google::SetLogDestination(google::GLOG_FATAL, LOG_FATAL_FILE.c_str());  

  ::google::InitGoogleLogging(*(pargv)[0]);
  // Provide a backtrace on segfault.

#if !defined(_MSC_VER)
  ::google::InstallFailureSignalHandler();
#endif
}

     中间的部分为添加的代码。

  重新生成libcaffe,然后重新生成caffe,即可。

  再训练一遍mnist数据集,即可在log文件夹下多出一个日志文件。

caffe生成log日志

  我在参考第一个博客的时候,按照作者所说的把生成日志的功能写一个函数initGlog() ,然后在GlobalInit中加入这个函数initGlog() ,总会报错

 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

  网上说是出现头文件的嵌套问题,我找了半天也没有解决,干脆就试着像第二个博客里面一样,将生成日志的代码直接添加在GlobalInit这个函数中,成功了。就是日志的名字有点奇怪,用的时候,还要再把后缀改一下。