0

1 日に 1 つの完全なログを作成するログ構成ファイルを作成しようとしていますが、現時点では複数のファイルが作成されます。

ie. 
readings.log.2013-06-17_01
readings.log.2013-06-17_02
readings.log.2013-06-17_03
readings.log.2013-06-17_04
readings.log.2013-06-17_05
readings.log.2013-06-17_06
readings.log.2013-06-18_01
readings.log.2013-06-18_02
readings.log.2013-06-18_03
readings.log.2013-06-18_04
readings.log.2013-06-18_05
readings.log.2013-06-18_06
...etc

私は何かを見逃していると確信していますが、サイズに関係なく、1 日あたり 1 つの完全なログファイルを作成するには、ロギング構成ファイルで何を変更する必要があります!>?

Python 2.7 atm を使用すると、スクリプトは 24 時間年中無休で実行されます

Thxマット。

私のログ設定ファイル; (logging_v3.cfg)

[loggers]
keys=root

[logger_root]
handlers=screen,file
level=NOTSET

[formatters]
keys=simple,complex,logtemps

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

[formatter_complex]
format=%(asctime)s - %(name)s - %(levelname)s - %(module)s : %(lineno)d - %(message)s

[formatter_logtemps]
format=%(asctime)s %(name)s %(levelname)s %(message)s

[handlers]
keys=file,screen

[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=0
formatter=logtemps
level=INFO
args=('logs/readings.log',)

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

そして、上記を機能させるために私のプログラムにあるコード。(明らかに他にもたくさんありますが、これがロギングの主要部分です)

import logging
import logging.config

logging.config.fileConfig('config/logging_v3.cfg') #logfile config

logging.debug("DEBUG MODE")
logging.debug("INFO MODE")
4

1 に答える 1

2

コメントを回答にコード化する:

ロギング構成ファイル形式のドキュメントは、各セクションのキーと値の有効なオプションについて少し不明確に思われます。

ハンドラーの場合、コンストラクターに引数を渡すように見えます。構成argsセクションでキーと値のペアを使用するのではなく、キーを使用してそこで値を指定する必要があります。

[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
args=('logs/readings.log',)

以下を使用する必要があります。

[handler_file]
class=handlers.TimedRotatingFileHandler
args=('logs/readings.log', 'midnight',)
于 2013-06-25T16:47:55.423 に答える