我在main.py
中有这个Python代码:
parser = argparse.ArgumentParser()
parser.add_argument("subname", help="Name of subreddit")
args = parser.parse_args()
然后在另一个文件speciallogger.py
:
import logging
import time
from logging.handlers import TimedRotatingFileHandler
path='logs/log_SUBNAMEHERE_logger.txt'
logmsg = logging.getLogger("Rotating Log")
fmt = u'%(asctime)s\t%(levelname)s\t%(filename)s:%(lineno)d\t%(message)s'
logmsg.setLevel(logging.INFO)
handler = TimedRotatingFileHandler(path, when="d", interval=1, backupCount=14)
handler.setFormatter(logging.Formatter(fmt))
logmsg.addHandler(handler)
脚本(以main.py
开始)通过使用参数的cron执行
我需要将该参数传递给speciallogger.py
,这样我就可以将文件名命名为what subname,同时确保logmsg
可以跨所有模块使用,而无需在每次使用多个模块的脚本导入期间重新创建日志文件
我该怎么做
在
speciallogger.py
中创建一个函数,并在完成arg解析后立即调用该函数logging.getLogger()
将返回相同的logger对象,无论调用它的程序中的何处,根据the documentation:因此,当您通过执行
setLevel
和addHandler
来修改它时,您正在进行一个应该反映整个程序的持久性更改相关问题 更多 >
编程相关推荐