在我的应用程序中,我正在使用python.logging进行记录.
In my application, I'm using python.logging for logging.
现在,我想以交互方式控制日志级别,因此我创建了一个组合框帽子,使用户可以选择" ERROR "," WARN "," INFO ,...
Now I want to control the loglevel interactively, so i created a combobox hat lets the user select "ERROR", "WARN", "INFO",...
我真正不喜欢的是,当前组合框中的值是硬编码的. 相反,Ii希望拥有所有命名"日志级别的列表(例如,既是系统默认值,又是通过logging.addLevelName添加的默认值;但不是伪造的日志级别,例如" Level 42 ")
What I don't really like is that currently the values in the combobox are hardcoded. Instead,Ii would like to have a list of all "named" loglevels (e.g. both the system defaults, but also those added via logging.addLevelName; but not the fake generated loglevels like "Level 42")
到目前为止,我想出的最好的方法是使用logging._levelNames字典.
The best I have come up with so far is to use the logging._levelNames dictionary.
但是,这似乎是一个私人成员,我不知道如何直接访问它.
But then this seems to be a private member, and I somehow have a bad feeling accessing it directly.
所以我的问题是:在Python中列出所有当前定义的命名"日志级别的正确方法是什么.
So my question is: what's the proper way to list all currently defined "named" loglevels in Python.
推荐答案由于您仅在读取值,因此logging._levelNames对我来说是一个合适的解决方案.继续使用logging.addLevelName设置新值.
As you are only reading values, logging._levelNames looks an appropriate solution to me. Keep going with logging.addLevelName for setting new values though.