这里有一篇博客比较全面的介绍了在python中定义告警的类别和方法,这里我们选取一种最容易使用也最常用的方法,直接使用warnings.warn
的功能:
1
2
3
4
5
6
7
8
9
10
# warning_test.py
import warnings
import sys
if sys.argv[1] == '-w':
warnings.warn('This is the warning message you wanted!')
else:
print ('No warnings!')
在这个示例代码中,我们从命令行的输入来获取参数,如果获取到命令行的参数是-w
,就抛出这个告警,在日常的项目程序中这表示一个异常情况的判定开关。无损音乐下载如果没有满足判定条件,就打印No warnings
信息。我们先来看下有异常情况下所抛出的告警信息:
1
2
3
[dechin@dechin-manjaro warning]$ python3 warning_test.py -w
warning_test.py:7: UserWarning: This is the warning message you wanted!
warnings.warn('This is the warning message you wanted!')
另外再看一下没有满足判定条件情况下的输出:
1
2
[dechin@dechin-manjaro warning]$ python3 warning_test.py -n
No warnings!
这里从结果中可以看到,我们对告警的定义就完成了。
在前面一篇博客中我们介绍了异常的抑制,同样的我们也可以抑制告警信息。但是这里用抑制
来形容这个行为可能并不是很合适,只是一个习惯性的叫法,因为告警本身就不影响程序的正常运行,应该说只是过滤掉告警信息的打印输出。告警抑制的方案也很简单,warnings.filterwarnings
就自带了这个功能,具体代码实现如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# warning_test.py
import warnings
import sys
warnings.filterwarnings('ignore')
if sys.argv[1] == '-w':
warnings.warn('This is the warning message you wanted!')
else:
print ('No warnings!')
print ('Continue to running.')
可以看到我们只是在代码中加了一行warnings.filterwarnings
的代码,过滤掉了所有的告警信息的输出。此外我们在程序的最后加了一行打印信息,以确认我们在抛出告警信息并且被抑制之后,还能够继续执行后面的程序(注意,不抑制也能继续执行)。歌曲下载
1
2
[dechin@dechin-manjaro warning]$ python3 warning_test.py -w
Continue to running.
最后我们发现,告警被成功抑制,并且告警之后的程序也能够正常的运行。
告警和异常信息的定义与处理,在网络编程项目和各种实际计算的场景中都会被用到。这里我们通过两篇博客进行了比较简单的介绍,对于没有特殊要求的用户而言,按照示例中给出的样板直接修改就能够使用。更多的时候是规范的要求,我们可能需要修改异常和告警所继承的类型。同时对于异常和告警信息,我们也能够有方案去进行抑制,更加适配各种不同的场景需求。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。