Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将Django日志临时镜像到第二个文件?_Python_Django - Fatal编程技术网

Python 如何将Django日志临时镜像到第二个文件?

Python 如何将Django日志临时镜像到第二个文件?,python,django,Python,Django,我希望创建特定于任务的日志文件,以反映特定操作期间发生的情况,但我希望这些日志消息也转到主Django日志 我目前的解决方案乍一看似乎效果不错,大致如下: logger = getLogger("%s:%s" % (__name__, task_id)) handler = FileHandler(task_log_file) logger.addHandler(handler) # Work logger.removeHandler(handler) 正如我所说的,这是可行的,但我遇到的

我希望创建特定于任务的日志文件,以反映特定操作期间发生的情况,但我希望这些日志消息也转到主Django日志

我目前的解决方案乍一看似乎效果不错,大致如下:

logger = getLogger("%s:%s" % (__name__, task_id))
handler = FileHandler(task_log_file)
logger.addHandler(handler)

# Work

logger.removeHandler(handler)
正如我所说的,这是可行的,但我遇到的主要问题是,这个记录器并不是真正的临时性的——根据我所读到的
logging.Manager
每个记录器都会无限期地挂起,直到关机。在这种情况下,当我完成后,我知道我不会再使用记录器(好的,从技术上来说我可能会,但这将是罕见的),并且假设系统是稳定的,这可能会运行数十万个任务


有一种“正确”的方法吗?

你可以有一种方法来标记和扫描你的日志资源文件,或者只使用一种单例模式。

我不太清楚这里的意思。通过标记和扫描,我假设您是指定期的日志扫描程序——这似乎过于复杂,更不用说我的部分目标是立即提供每个作业的日志。据我所知,伐木工人都是单身;我的问题的一部分是,我希望每个作业记录器的行为不象一个单例,而是只存在于一个特定的范围内,并在退出该范围时被释放。