1
135
@ Eric S. Eric S的回答很好,但我通过实验了解到,这将始终导致打印在新调试级别记录的消息,而不管日志级别设置为什么。因此,如果将新的级别编号设为9,如果调用setlevel(50),则会错误地打印较低级别的消息。为了防止这种情况发生,您需要在“debugv”函数中使用另一行来检查是否实际启用了相关的日志级别。 修复了检查日志记录级别是否已启用的示例:
如果你看代码
很明显我不能回复别人的答案,因为他们缺乏声誉…希望埃里克看到这一点会更新他的帖子。=) |
2
58
我得到了“避免看到lambda”的答案,并且必须修改在“我的日志”级别添加日志的位置。我也看到了保罗的问题,“我认为这行不通。你不需要记录器作为日志中的第一个参数吗?这对我有用
|
3
32
这个问题很古老,但我只是处理了同一个话题,发现了一种类似于前面提到的,对我来说似乎更清楚的方法。这是在3.4上测试的,所以我不确定使用的方法是否存在于旧版本中:
|
4
28
将所有现有答案与一系列使用经验结合起来,我认为我已经列出了所有需要做的事情,以确保新级别的完全无缝使用。下面的步骤假设您正在添加一个新级别
所有步骤如下所示:
|
5
17
是谁开始使用内部方法的坏做法的?(
|
6
9
我发现为传递logger()函数的logger对象创建新属性更容易。我认为logger模块提供addLevelName()和log()是因为这个原因。因此不需要子类或新方法。
现在
应该按预期工作。 |
7
8
我想你得把
|
8
4
创建自定义记录器的提示:
调用此记录器时,请使用
你需要
|
9
3
这对我很有用:
lambda/funcname问题已通过logger修复。_log as@marqueed指出。我认为使用lambda看起来有点干净,但缺点是它不能接受关键字参数。我自己从来没有用过,所以没什么大不了的。 NOTE setup: school's out for summer! dude FATAL setup: file not found. |
10
2
以我的经验来看,这是全面的解决方案——手术的问题……要避免将“lambda”视为消息发出的函数,请更深入:
我从未尝试过使用独立的logger类,但我认为基本思想是相同的(使用日志)。 |
11
2
添加MAD物理学家示例以获得正确的文件名和行号:
|
12
0
作为向logger类添加额外方法的替代方法,我建议使用
|
13
0
我很困惑;至少对于python 3.5来说,它是有效的:
输出:
|
14
0
基于固定答案, 我写了一个自动创建新日志级别的小方法
配置可能会这样:
|
15
-3
如果有人想要一种自动方式动态地向日志模块(或其副本)添加新的日志级别,我已经创建了这个函数,扩展了@pfa的答案:
|
Abdullah Chaudhry · json文件上的文件旋转和删除 1 年前 |
Max S · 如何从CMD读取日志的所有输出 6 年前 |
Ivan Denchev · Apache-过去一小时的日志 6 年前 |
ninja.coder · Log4j中的字符串串联性能 6 年前 |
Rich · 如何记录日志。是否与操作员一起调试? 6 年前 |