python中的日志文件名存储在哪里?

python中的日志文件名存储在哪里?,python,module,python-3.x,Python,Module,Python 3.x,我有一个Python程序,它由几个模块组成。“main”模块创建一个文件变量log\u file,用于记录输出;所有其他模块也需要写入该文件 但是,我不想将“main”模块导入到其他模块中,因为这将是一个非常奇怪的依赖项(更不用说它可能因为循环依赖而无法工作) 那么,我应该在哪里存储log\u文件变量 编辑: 以下是@pyfunc答案-可以吗: --- config.py --- # does not mention log_file # unless it's required for syn

我有一个Python程序,它由几个模块组成。“main”模块创建一个文件变量
log\u file
,用于记录输出;所有其他模块也需要写入该文件

但是,我不想将“main”模块导入到其他模块中,因为这将是一个非常奇怪的依赖项(更不用说它可能因为循环依赖而无法工作)

那么,我应该在哪里存储
log\u文件
变量

编辑:

以下是@pyfunc答案-可以吗:

--- config.py ---
# does not mention log_file
# unless it's required for syntax reasons; in which case log_file = None
# ...

--- main.py ---
from datetime import datetime
import config.py
log_filename = str(datetime.now()) + '.txt'
config.log_file = open(log_filename, 'w')
# ...

--- another_module.py ---
import config.py
# ...
config.log_file.write(some_stuff)

一种方法是将所有代码导入另一个模块,以便您可以将其导入主文件和其他模块

希望您已检查:

将“全局”变量放入“设置”模块中

设置.py

log_file = "/path/to/file"
main.py

import settings
import logging
logging.basicConfig(filename=settings.log_file,level=logging.DEBUG)

logging.debug("This should go to the log file")
其他模块.py

import logging
logging.debug("This is a message from another place.")

虽然设置模块可能会解决您当前的问题和许多其他问题,但是设置模块模式对于日志文件名之外的许多其他事情都很有用。Django使用它来配置几乎所有内容。

在这个问题中,似乎没有任何py3k特定的内容。我建议使用带有配置文件的日志记录包,而不是自定义解决方案。我只是打印输出,而不是错误。我想我仍然可以使用日志软件包。。。虽然我觉得这太过分了,我只需要将内容打印到文件中。这就是我想做的(在上面编辑的代码中是config.py),但我需要在main.py中指定文件名,因为这取决于调用脚本的时间。Config.py将被导入多次,因此我不想一直更改文件名。在您的示例中,log_文件不必是全局变量,因为日志模块将接管。但我理解这个想法。