Python中文
首页
教程
问答
标签
搜索
登录
注册
结合Python跟踪信息和日志记录
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试编写一个高度模块化的Python日志系统(使用日志模块),并在日志消息中包含来自跟踪模块的信息</p> <p>例如,我希望能够编写一行代码,如:</p> <pre><code>my_logger.log_message(MyLogFilter, "this is a message") </code></pre> <p>并让它包含“log_message”调用发生的位置的跟踪,而不是实际的记录器调用本身</p> <p>除了跟踪信息来自<code>logging.debug()</code>调用而不是<code>my_logger.log_message()</code>调用之外,我几乎可以使用以下代码</p> <pre><code>class MyLogFilter(logging.Filter): def __init__(self): self.extra = {"error_code": 999} self.level = "debug" def filter(self, record): for key in self.extra.keys(): setattr(record, key, self.extra[key]) class myLogger(object): def __init__(self): fid = logging.FileHandler("test.log") formatter = logging.Formatter('%(pathname)s:%(lineno)i, %(error_code)%I, %(message)s' fid.setFormatter(formatter) self.my_logger = logging.getLogger(name="test") self.my_logger.setLevel(logging.DEBUG) self.my_logger.addHandler(fid) def log_message(self, lfilter, message): xfilter = lfilter() self.my_logger.addFilter(xfilter) log_funct = getattr(self.logger, xfilter.level) log_funct(message) if __name__ == "__main__": logger = myLogger() logger.log_message(MyLogFilter, "debugging") </code></pre> <p>为了进行一个简单的<code>logging.debug</code>调用,这是一个非常麻烦的过程,但实际上,我将在不同的日志记录级别上列出许多不同版本的<code>MyLogFilter</code>,其中包含不同的“error\u code”属性值,我正试图使<code>log_message()</code>尽量短而甜,因为它会重复无数次</p> <p>如果能告诉我如何做我想做的事情,或者如果我完全偏离了正确的方向,如果是这样的话,我应该怎么做,我将不胜感激</p> <p>如果可能的话,我想坚持使用内部python模块“logging”和“trace”,而不是使用任何外部解决方案</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>事实证明,拼图中缺少的部分是使用“回溯”模块,而不是“跟踪”模块。解析traceback的输出以提取“.log_message()”调用的源文件名和行号非常简单</p> <p>如果我的日志记录需要变得更加复杂,那么我肯定会研究struct_log。谢谢你提供的信息,因为我以前从未听说过</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
1 回答
如何添加表示整数的擦边字符串?
10 回答
如何添加要在Bokeh中使用的新font.ttf文件?
8 回答
如何添加要显示的矩阵XY轴编号和XY轴
10 回答
如何添加计数?
4 回答
如何添加计数器函数?
7 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
4 回答
如何添加计数器来跟踪while循环中的月份和年份?
9 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
9 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
2 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
7 回答
如何添加评论拉梅尔亚姆
1 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
9 回答
如何添加谷歌地点自动完成到Flask?
10 回答
如何添加超时、python discord bot
6 回答
如何添加超过1dp的检查
8 回答
如何添加距离方法
6 回答
如何添加跟随游戏的敌人精灵
7 回答
如何添加路径以便python可以找到程序?
10 回答
如何添加身份验证/安全性以使用happybase访问HBase?
2 回答