我希望“沉默” Python中yum API的调试级别。例如,我为两个变量分配了yum命令,如下所示;

import yum
yb = yum.YumBase()

yum_conf = yb.conf.config_file_path
package_list = yb.doPackageLists(pkgnarrow='updates', patterns='', ignore_case=True)


运行脚本时,它随CentOS 7一起返回以下内容:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.sov.uk.goscomb.net
* extras: mirror.sov.uk.goscomb.net
* updates: mirror.sov.uk.goscomb.net


然后在CentOS 6上:

Loaded plugins: fastestmirror
Determining fastest mirrors


我不要这种冗长的印刷水平。我认为这与日志记录级别有关,但是在如何更改此级别方面却步履蹒跚。

最佳答案

您只需要这两行,

  yb.preconf.debuglevel = 0
  yb.preconf.errorlevel = 0

例如,一个python脚本,getpkg.py看起来类似于以下内容:
  import yum

  yb = yum.YumBase()
  yb.preconf.debuglevel = 0
  yb.preconf.errorlevel = 0
  yb.install(name='emacs-nox')
  yb.resolveDeps()
  yb.processTransaction()

结果:
~]# python getpkg.py
Installing: 1:perl-parent-0.225-244.el7.noarch 0/8868 [1/32]
Installing: 1:perl-parent-0.225-244.el7.noarch 144/8868 [1/32]
Installing: 1:perl-parent-0.225-244.el7.noarch 2649/8868 [1/32]
Installing: 1:perl-parent-0.225-244.el7.noarch 5686/8868 [1/32]
....
....

10-01 15:26