[英]Python - Writing a log to a file
我目前有控制台的日志記錄設置。
我使用以下命令調用我的配置:
import logging
import logging.config
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('osPatch')
我的配置是::
[loggers]
keys=root,osPatch
[handlers]
keys=consoleHandler
[formatters]
keys=osPatch
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_osPatch]
level=DEBUG
handlers=consoleHandler
qualname=osPatch
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=osPatch
args=(sys.stdout,)
[formatter_osPatch]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
這使我可以很好地進行控制台級別的日志記錄。
現在,我希望將相同的日志寫入文件。
我想做的是編輯我的配置文件並使用fileHandler 。
因此,我將配置文件編輯為:
[loggers]
keys=root,osPatch
[handlers]
keys=consoleHandler,FileHandler
[handler_FileHandler]
filename=example.log
level=DEBUG
formatter=osPatch
這給我一個錯誤:
Traceback (most recent call last):
File "apply_errata.py", line 1, in <module>
import satellite_utils
File "/root/config-3.1.25/automated-os-patching/satellite_utils.py", line 3, in <module>
import system_utils
File "/root/config-3.1.25/automated-os-patching/system_utils.py", line 4, in <module>
import processing_utils
File "/root/config-3.1.25/automated-os-patching/processing_utils.py", line 7, in <module>
logging.config.fileConfig('logging.conf')
File "/usr/lib64/python3.4/logging/config.py", line 85, in fileConfig
_install_loggers(cp, handlers, disable_existing_loggers)
File "/usr/lib64/python3.4/logging/config.py", line 253, in _install_loggers
logger.addHandler(handlers[hand])
KeyError: 'FileHandler'
我在這里做錯了什么?
不確定完整配置文件的外觀,但是根據我的經驗,該追溯表明處理程序密鑰未在處理程序部分中正確聲明。
作為參考,這是我認為您打算創建的配置文件的試用版。
[loggers]
keys=root,osPatch
[handlers]
keys=consoleHandler,FileHandler
[formatters]
keys=osPatch
[logger_root]
level=DEBUG
handlers=consoleHandler,FileHandler
[logger_osPatch]
level=DEBUG
handlers=consoleHandler,FileHandler
qualname=osPatch
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=osPatch
args=(sys.stdout,)
[handler_FileHandler]
class=FileHandler
level=DEBUG
formatter=osPatch
args=('example.log',)
[formatter_osPatch]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.