Python中文
首页
教程
问答
标签
搜索
登录
注册
Python日志记录 - 仅用于文件处理的exc_info
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我为它定义根记录器和处理程序:</p> <pre><code>_root = logging.getLogger() _sh = logging.StreamHandler() _fh = logging.FileHandler('./error.log', delay = True) _root.addHandler(_sh) _root.addHandler(_fh) </code></pre> <p>和模块记录器实例:</p> ^{pr2}$ <p>现在我在try中调用<code>_log.exception</code>,除了块:</p> <pre><code>_log.exception("Test") </code></pre> <p>现在我在控制台和文件中进行回溯。我尝试使用控制台处理程序而不是文件处理程序禁止打印exc_信息:</p> <pre><code>class _TraceBackFilter(logging.Filter): def filter(self, rec): rec.exc_info = None return True _sh = logging.StreamHandler() _sh.addFilter(_TraceBackFilter()) _root.addHandler(_sh) </code></pre> <p>这对文件处理程序和控制台处理程序都有效,对所有处理程序都完全删除了回溯,但我只需要对控制台执行此操作。是否有任何方法只对控制台处理程序而不是文件处理程序取消exc_信息?在</p> <p><strong>编辑:</strong></p> <p>我修改<code>_TraceBackFilter</code>类。在</p> <pre><code>class _TraceBackFilter(logging.Filter): def filter(self, rec): if rec.exc_info: logging.getLogger(rec.name).log(rec.levelno, rec.getMessage()) return False else: return True </code></pre> <p>现在它适用于控制台处理程序,但在文件中,我将消息加倍,一个有回溯,一个没有回溯。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果先使用该筛选器处理_sh处理程序,则它可能正在修改实际的回溯对象。因为同一个回溯对象同时传递给了_sh和_fh,_fh接收已经修改的回溯。在</p> <p>您可以在该过滤器中创建一个新的回溯对象sans-exc\u-info,也可以交换顺序,这样addHandler将首先在_-fh上调用。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
6 回答
如何添加表示整数的擦边字符串?
6 回答
如何添加要在Bokeh中使用的新font.ttf文件?
1 回答
如何添加要显示的矩阵XY轴编号和XY轴
6 回答
如何添加计数?
2 回答
如何添加计数器函数?
5 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
10 回答
如何添加计数器来跟踪while循环中的月份和年份?
8 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
6 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
5 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
6 回答
如何添加评论拉梅尔亚姆
3 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
10 回答
如何添加谷歌地点自动完成到Flask?
8 回答
如何添加超时、python discord bot
8 回答
如何添加超过1dp的检查
4 回答
如何添加距离方法
3 回答
如何添加跟随游戏的敌人精灵
4 回答
如何添加路径以便python可以找到程序?
3 回答
如何添加身份验证/安全性以使用happybase访问HBase?
10 回答