0

Python によるプログラム A:

LOG_PATH = fdoc_log + "/store_plus.log"
 FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
 logging.basicConfig(filename=LOG_PATH, filemode = 'w', level=logging.DEBUG, format=FORMAT)

bash によるプログラム B:

 mv store_plus.log store_plus.log.bk

プログラム A はバックグラウンドで実行され、停止しません。プログラム B が store_plus.log のファイルを削除すると、プログラム A もログを書き込めなくなります。プログラム A で store_plus.log を再構築したい場合、どうすれば解決できますか? ありがとうございました

PS: 方法:

 f = open(LOG_PATH, "a")
 f.close()

うまくいきません。

4

2 に答える 2

0

pymotw-loggingとDougHellmannのすべてのクレジットからの例。

import glob
import logging
import logging.handlers

LOG_FILENAME = '/tmp/logging_rotatingfile_example.out'

# Set up a specific logger with our desired output level

my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)

# Add the log message handler to the logger
handler = logging.handlers.RotatingFileHandler(LOG_FILENAME, maxBytes=20, backupCount=5)

my_logger.addHandler(handler)

# Log some messages
for i in range(20):
   my_logger.debug('i = %d' % i)

# See what files are created
logfiles = glob.glob('%s*' % LOG_FILENAME)

for filename in logfiles:
   print filename
于 2013-01-22T09:44:24.887 に答える
0

この方法は WatchedFileHandler でOKです:

    logger = logging.getLogger('simple_example')
    logger.setLevel(logging.DEBUG)

    ch = logging.handlers.WatchedFileHandler('a_log')
    ch.setLevel(logging.DEBUG)

    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

    ch.setFormatter(formatter)
    logger.addHandler(ch)
于 2013-01-22T10:08:29.367 に答える