Twisted twisted.python.log日志
1 简单使用
Twisted提供了一个简单而且可移植的日志系统叫做 twisted.python.log 。它包含3个函数:
msg
记录一条信息,例如:
from twisted.python import log log.msg("hello, world")
err
把错误写入日志,包括traceback信息。你可以传递一个 failure 或者异常的实例,甚至什么都没有。如果传递其他的东西则会通过 repr() 函数获得字符串来显示。如果什么都不传递则会自动构造一个 Failure 实例,一般用于 except 子句:
try: x=1/0 except: log.err() #会自动记录ZeroDivisionError
startLogging
通过一个类似文件对象来开始日志,例如:
log.startLogging(open("/var/log/foo.log",'w'))或者:
log.startLogging(sys.stdout)
缺省条件下,startLogging会同时将输出重定向到sys.stdout和sys.stderr。你可以在startLogging中设置setStdout=False来禁用这个功能。
1.1 日志与twistd
如果你使用twistd来运行你的程序作为后台进程,则他会自动托管startLogging,甚至还会自动轮训日志。查看 twistd and tac 一节或twistd的man手册了解更多。
1.2 日志文件
twisted.python.logfile 模块提供了一些可以同startLogging共同使用的类,例如 DailyLogFile ,提供了以天为单位的日志轮询。
2 编写日志监视器
日志监视器是Twisted日志系统的基础。一个日志监视器的例子是供startLogging使用的 FileLogObserver ,可以把事件写入文件中。一个日志监视器是可调用的,并且只接受一次字典作为参数。随后你可以用它来接收所有的日志事件(当然也会给其他日志监视器):
twisted.python.log.addObserver(yourCallable)
字典至少有2个项目:
message
日志信息,一个列表或字符串,被log.msg或log.err传递过来的。
isError
一个布尔值,如果为True时就是从log.err过来的。如果为True说明字典当中还会有个Failure对象。
其他项目是自动被加入的:
printed
这条信息是从sys.stdout中捕获的,例如这条信息是从print输出的。如果isError同样为True,则是从sys.stderr来的。
你可以通过 log.msg 或 log.err 传递附加项目到事件字典。标准的日志监视器将会忽略他们不用的字典参数。
Note
注意
- 不要在日志监视器中抛出异常,否则会挂掉。
- 不要在日志监视器中阻塞,尤其是在主线程中。这将会导致很多问题。
- 日志监视器需要线程安全。
相关文章
- 在pycharm中如何新建Python文件?_github下载的python源码项目怎么用
- python 生成数组_Python创建数组「建议收藏」
- python格式化转换_Python进制转换format格式化[通俗易懂]
- Python入门系列(六)一篇学会python函数
- python中删除列表中重复元素
- Python运算符与表达式
- python偏函数理解_python进阶路线
- 【说站】python字典添加值的方法
- python输出unicode编码_python gbk codec
- import win32api 找不到指定程序_win32api python
- python读取log文件_python分析log日志
- 力扣刷题笔记--12. 整数转罗马数字 python解法
- Python提取WPS和Word两种版本docx文档中超链接文本和地址
- PyCharm下载:Python编程利器PyCharm 2022版安装激活汉化教程
- python通过wxPython打开并播放wav文件详解编程语言
- 一步一步学会在Linux上运行Python程序(linux运行python程序)
- 使用Python执行Linux命令的方法(python调用linux命令)
- 解锁Linux之路:创建Log日志(linux创建log)
- Linux查看Python版本的有效方法(linux查看python版本)
- Python股市数据分析教程——学会它,或可以实现半“智能”炒股 (Part 1)
- Linux中如何离开Python环境(linux怎么退出python)
- Linux系统下安装Python模块指南(linux安装python模块)
- Linux 下 Python 升级:轻松完成升级操作(linux下升级python)
- python发送arp欺骗攻击代码分析
- python教程之用py2exe将PY文件转成EXE文件