1

Python アプリケーションにロギング機能を装備し、Python 3.4 を使用する Windows システムで問題なく動作します。しかし、Raspbian と Python 3.2 を使用して Raspberry Pi にアプリケーションをデプロイすると、次のエラーが表示されます。

Traceback (most recent call last):
  File "aurora/aurora_websocket.py", line 265, in <module>
    logging.config.fileConfig('logging.conf')
  File "/usr/lib/python3.2/logging/config.py", line 70, in fileConfig
    formatters = _create_formatters(cp)
  File "/usr/lib/python3.2/logging/config.py", line 106, in _create_formatters
    flist = cp["formatters"]["keys"]
  File "/usr/lib/python3.2/configparser.py", line 941, in __getitem__
    raise KeyError(key)
KeyError: 'formatters'

logging.conf ファイル (BOM なしの UTF-8 でエンコード):

[loggers]
keys=root,simpleExample

[handlers]
keys=screen

[formatters]
keys=simple,complex

[logger_root]
level=NOTSET
handlers=screen

[logger_simpleExample]
level=DEBUG
handlers=screen
qualname=simpleExample
propagate=0

[handler_screen]
class=StreamHandler
level=DEBUG
formatter=complex
args=(sys.stdout,)

[formatter_simple]
format=%(asctime)s - %(levelname)s - %(message)s
datefmt=

[formatter_complex]
format=%(asctime)s - %(levelname)-8s - <%(module)s : %(lineno)d> - %(message)s
datefmt=

ロギング構成は、単純なワンライナーでロードされます。

logging.config.fileConfig('logging.conf')

前述のように、私のアプリケーションは Windows では正常に動作しますが、RPi では失敗するため、ここで途方に暮れています。

4

1 に答える 1

5

まあ、これは長続きしませんでした...結局のところ、別の作業ディレクトリからRPiでアプリケーションを実行していました。その結果、logging.conf ファイルへのファイル パスは、異なる作業ディレクトリに対して正しく解釈されません。残念ながら、ログ ライブラリは存在しないファイルを処理し続けようとし、その場合は有用な例外をスローしません。

于 2015-03-30T15:24:00.640 に答える