C++

google::InitGoogleLogging("XXX");
google::SetCommandLineOption("GLOG_minloglevel", "2");

Python

# coding: utf-8
pycaffe_dir = '/home/zz/work/caffe-BVLC/python'
import sys 
sys.path.insert(0, pycaffe_dir)

os.environ['GLOG_minloglevel'] = '2' 
import caffe

注意:

1) 要在第一次import caffe之前设定GLOG_minloglevel,它其实就是个环境变量,因此不在python中而在shell中设定也可以;

2) 其实一共有4个GLOG日志层级可选:

0 - debug
1 - info (still a LOT of outputs)
2 - warnings
3 - errors
  1. 也许你代码中的第一次import caffe前就设定了GLOG_minloglevel,但是不起作用,终端还是输出一大堆东西。可能的原因:
  • 你是不是import caffe之前import了其他代码,这些被import的代码中是不是有import caffe?

  • 你是不是import了自行编译的cv2,而编译产生这个cv2.so的时候有混入glog?
    查看你的cv2.so:

ipython

import imp

imp.import_module('cv2')

根据返回结果,来获得cv2.so的路径,看看是不是自己编译的cv2.so。至于为啥cv2.so能混入glog,这个锅主要由OpenCV官方来背,因为cv2.so依赖了libglog:

➜  opencv git:(master) ✗ ldd /usr/lib/python2.7/cv2.so | grep 'glog' -i 
	libglog.so.0 => /usr/lib/x86_64-linux-gnu/libglog.so.0 (0x00007fcf05033000)