Python BasicConfig日志记录不会更改日志文件

时间:2014-01-23 13:55:59

标签: python python-2.7 logging

我写了一个小函数来将事件记录到文件中。此python脚本在主脚本中导入。主题作为守护进程运行(实际上是轮询数据库)。

MainScript.py:

import logger

logger.logmessage(module = module, message = "SomeMessage")

logger.py:

def logmessage(message, module, level = 'INFO'):
    today = str(datetime.date.today())
    logFile = '/path/to/log/myapplog.'+today+'.log'

    logging.basicConfig(format='%(asctime)s - %(levelname)s - '+ module + ' -  %(message)s',level=logging.INFO,filename=logFile)

    if level is "INFO":
        logging.info(message)
    elif level is "WARNING":
        logging.warning(message)
    elif level is "CRITICAL":
        logging.critical(message)

我的意图:获取myapplog.2014-01-23.log,2014-01-24.log等日志文件......

我的问题:日志文件保持不变。它会不断记录到myapplog.2014-01-23.log,只有在重启守护进程后,才会创建并使用正确日期的正确日志。

1 个答案:

答案 0 :(得分:1)

听起来您需要使用TimedRotatingFileHandler作为记录here

此外,您不应多次致电basicConfig()(我认为您不止一次致电logmessage)。作为documented,basicConfig()除了设置基本配置外不会做任何事情(如果只有第一次调用做任何事情 - 后续调用发现有配置,所以不要做任何事情)。