python logging 定向不输出到屏幕?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python logging 定向不输出到屏幕?相关的知识,希望对你有一定的参考价值。
如何设置python的logging模块,使log 信息不默认输出到默认的std I/O? 但是不要保存到某文件.
参考技术A 简答:你自己貌似自相矛盾:既不让信息输出到standard i/o 也不让输出到文件,哪你想让其输出到哪里???
所以,你还是把你的问题搞清楚了,再来问吧。
正常的做法,是设置某个输出等级,高于某个等级,就不输出到标准io。
可以支持同时输出到对应的文件。
详细用法,我早就写好教程了,需要的自己去看:
【整理】Python中的logging模块的使用(可以实现同时输出信息到cmd终端窗口和log文件(txt)中)
(此处不给贴地址,自己用google搜标题,即可找到帖子地址的)追问
你想不出来吧? 比如我想输出到一个客户端ui窗口,但是不输出到系统默认终端。
追答1.“你想不出来吧?”
我表示,我看不懂你这句啥意思。
2.估计是,在logging初始化的时候,设置你要的客户端ui窗口,为对应的handler,估计就可以了。
具体用法,自己参考上面的帖子。
你想不出来我要输出哪是你想不出来,就不要说我是自相矛盾了。
我早已经能输出到ui窗口了,这个很容易,但是终端还是也同时输出信息,就是说默认的handler还在工作。
"你想不出来我要输出哪是你想不出来,就不要说我是自相矛盾了。"
恩,是我没想出来。我的错。现在理解你的意思了。
刚去专门测试了下,可以通过,不把console添加到你的log的handler中,就可以实现,输出的信息,不会输出到屏幕(windows的cmd)中了。
详细过程见:
【已解决】使Python中的logging的日志内容不输出到(Windows的cmd,Linux的terminal等)终端中
输出到ui! 怎么截获?
追答定义个StringIO,并赋值给sys.stdout
code:
stdout = StringIO.StringIO()
sys.stdout = stdout
然后就可以从stdout里拿到输出
截获sys.stdout感觉不太好,能把logging默认输出到屏幕的handler关闭吗?
追答写代码不是靠感觉,这个是个技巧,如果只是想关闭cmdline的输出,用重定向的方式就行了,在命令后面加上 1>nul
本回答被提问者采纳以上是关于python logging 定向不输出到屏幕?的主要内容,如果未能解决你的问题,请参考以下文章
在linux上单独执行屏幕有输出,重定向后没有任何输出了。 myprog > 1.log 或 myprog tee 1.log