1. 程式人生 > >使用loggin和ConfigParser配置檔案中遇到的問題

使用loggin和ConfigParser配置檔案中遇到的問題

問題一: 載入loggin配置檔案時出錯 UnicodeDecodeError

一開始logger.conf配置檔案的存檔格式為unicode,該檔案中有中文字元。

logging.config.fileConfig("logger.conf")

所以下面語句載入時,出現如下錯誤:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

將檔案存檔為 ANSI 模式後,問題解決。相關的文字編解碼問題,可以參考:

問題二:loggin檔案解析過程中出錯:  log.addHandler(handlers[hand]) KeyError: 'fileHandler #將root logger的日誌

在配置檔案中,handlers後面又備註資訊。

[logger_root] #root logger
level=DEBUG

handlers=consoleHandler,fileHandler #將root logger的日誌資訊輸出到檔案和控制檯,這個不能放在下

將其修改如下後,問題解決。

[logger_root] #root logger
level=DEBUG
#將root logger的日誌資訊輸出到檔案和控制檯,這個不能放在下

handlers=consoleHandler,fileHandler 

問題三:用ConfigParser載入cfg.ini解析錯誤,

  File "D:\ProgramData\Anaconda3\lib\configparser.py", line 1080, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError: File contains no section headers.
file: 'cfg.ini', line: 1

'\ufeff[filecfg]\n'

問題原因為cfg.ini在windows平臺上存的檔案編碼格式為utf-8。用

cf.read('cfg.ini',encoding='utf-8')

是不行的,必須使用  encoding='utf-8-sig'  才可以