怎样优雅的创建 log?

2020-12-08 21:24:59 +08:00
 frmongo

比如我有如下的 python 程序,为了方便调试,每个函数都加了很多打印,有没有办法把这些打印都自动保存到一个 log.txt 里 最好能将进入函数、函数中执行步骤、退出函数的 print 的输出都记录下来保存进 log.txt 里

def aa():
    print("enter aa")
    # do sth
    print("quit aa")

def bb():
    print("enter bb")
    # do sth
    print("quit bb")

def cc():
    print("enter cc")
    # do sth
    print("quit cc")

def main()
    print("begin")
    aa()
    bb()
    cc()
    print("all end")

main()
2015 次点击
所在节点    Python
7 条回复
nightwitch
2020-12-08 21:27:10 +08:00
frmongo
2020-12-08 21:31:55 +08:00
@nightwitch #1 如果用 logging,函数内部也想用同一个 logging 对象,是不是用装饰器比较好..这个不太熟悉
no1xsyzy
2020-12-08 21:40:39 +08:00
@frmongo logger 对象一般分模块
如果你是想在函数前后做的话确实是修饰器。
一说不要用 trace 当 debug……
你可能需要 VizTracer
frmongo
2020-12-09 11:29:19 +08:00
@no1xsyzy #3 看起来很酷,我试试,谢谢
TimePPT
2020-12-09 16:02:07 +08:00
TimePPT
2020-12-09 16:03:04 +08:00
如果是 debug,PySnooper 合适
https://github.com/cool-RR/PySnooper
frmongo
2020-12-09 16:53:43 +08:00
@TimePPT #6 多谢,炸出来一堆高手

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/733496

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX