最近优化个项目,打算把代码中的 print 都换成用日志模块进行处理。
日志模块选择了 Python 自带的 logging 日志模块。
通过配置文件的方式对日志模块进行配置。
最开始的时候使用的是 yaml 类型的配置文件,但总报类似解析问题的错误(具体是什么当时没有记录),尝试了几次后发现没有什么有用的资料,就放弃了种方式,改用了 ini 或 conf 这种方式了。但,如题又遇到了别的问题。
在使用下面语句加载进行配置:
import logging
import os
logging.config.fileConfig(fname=os.path.abspath("logging.conf"), disable_existing_loggers=False)
logging.conf 文件内容如下:
[loggers]
keys=root
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=simpleFormatter
# ---------- logger ----------
[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler
# ---------- handler ----------
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler
level=INFO
formatter=simpleFormatter
args=('info.log','a')
# ---------- formatter ----------
[formatter_simpleFormatter]
format=%(asctime)s %(filename)s %(levelname)s %(message)s
datefmt=%Y-%m-%d %H:%M:%S
上面都不是重点,重点是报下面的错误了:
Traceback (most recent call last):
File "D:\Develop\Tools\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3444, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-690e1cd92ab7>", line 1, in <module>
略……
AttributeError: module 'logging' has no attribute 'config'
logging 的确就是 Python 安装路径下 Lib 里的 logging ,就是没有 config, 我也不知道为什么。看网上有说是自己项目里的某个模块或文件也叫 logging ,把系统默认的给覆盖了。
下面换了个写法,就可以了。
import os
import logging
import logging.config as log_config
# 定义日志配置文件
log_config.fileConfig(fname=os.path.abspath("../../config/logging.conf"), disable_existing_loggers=False)
博主在项目中遇到Python的logging模块配置问题,最初使用yaml配置文件时出现解析错误,后改为ini或conf格式。在尝试加载logging.conf配置文件时,出现AttributeError,找不到logging.config。解决方案是通过导入logging.config子模块来正确加载配置,问题得到解决。

1万+

被折叠的 条评论
为什么被折叠?



