2024-09-30 08:22:34 发布
网友
有没有方法可以防止yum API在运行时创建输出?在
如果代码为el3.3,则运行以下代码:
import yum yb = yum.YumBase() yb.repos.populateSack(mdtype='metadata', cacheonly=0)
我得到以下输出:
我不想要blackholeall输出,只想得到来自yum API的输出。在
在这里背负着表哥89的答案。在
我不确定这是否是一个详尽的清单,每百胜日志,但我认为它是相当接近。在你开始调用Yum之前,你可以禁用它们,它将完全静音。在
import logging from yum.logginglevels import __NO_LOGGING yumLoggers = ['yum.filelogging.RPMInstallCallback','yum.verbose.Repos', 'yum.verbose.plugin', 'yum.Depsolve', 'yum.verbose', 'yum.plugin', 'yum.Repos', 'yum', 'yum.verbose.YumBase', 'yum.filelogging', 'yum.verbose.YumPlugins', 'yum.RepoStorage', 'yum.YumBase', 'yum.filelogging.YumBase', 'yum.verbose.Depsolve'] for loggerName in yumLoggers: logger = logging.getLogger(loggerName) logger.setLevel(__NO_LOGGING)
您还可以通过创建一个继承RPMBaseCallback的类并将其传递给各种事务函数(processTransaction等)来覆盖各种RPM事务中的一些进度条/事件记录器。但是,如果您像我前面所做的那样禁用所有的记录器,那么这些函数将不会被调用。在
编辑: 经进一步检查,我认为最简单的答案是:https://stackoverflow.com/a/43625141/619255
然而,这种方法不会使不完整事务的警告静音,而禁用所有日志记录器。在
我研究了RHEL7 yum代码,我相信您可以在代码中这样做:
import logging logger = logging.getLogger("yum.verbose.YumPlugins") # Only print critical logs from yum logger.setLevel(logging.CRITICAL) # The "Loaded plugins:" text is printed as a debug. So anything above # logging.DEBUG should silence it
在这里背负着表哥89的答案。在
我不确定这是否是一个详尽的清单,每百胜日志,但我认为它是相当接近。在你开始调用Yum之前,你可以禁用它们,它将完全静音。在
您还可以通过创建一个继承RPMBaseCallback的类并将其传递给各种事务函数(processTransaction等)来覆盖各种RPM事务中的一些进度条/事件记录器。但是,如果您像我前面所做的那样禁用所有的记录器,那么这些函数将不会被调用。在
编辑: 经进一步检查,我认为最简单的答案是:https://stackoverflow.com/a/43625141/619255
然而,这种方法不会使不完整事务的警告静音,而禁用所有日志记录器。在
我研究了RHEL7 yum代码,我相信您可以在代码中这样做:
相关问题 更多 >
编程相关推荐