我有一个使用日志记录模块的python服务器。到目前为止它只是:
logging.basicConfig(filename='server.log',level=logging.INFO,format='%(asctime)s\t%(levelname)s\t%(message)s')
现在我想为记录器添加一些处理程序。这大约是15行代码。我不想把它放在主server.py文件中,以使其保持最重要的服务器内容。问题是 - 在python中建议的方法是什么。
我已将我的日志处理程序定义移到另一个模块中并导入它:
import logdefs
但是从未使用过此导入(我从不使用logdefs.something
)。这可以吗?另一个问题是 - 如何从server.py的子模块加载日志记录模块,并且所有日志记录设置都可用于其应用程序的其余部分(修改是全局的而不是本地的)?是否所有日志记录模块内容都可用作某种单例?
答案 0 :(得分:1)
您可以致电
,而不是致电logging.basicConfig
logging.config.fileConfig(config_file)
对于第二个问题,如果你看一下logging/__init__.py
source code,你会看到
root = RootLogger(WARNING)
Logger.root = root
Logger.manager = Manager(Logger.root)
首次导入logging
时会调用此代码。
因此,当子模块修改或访问根记录器时,它会影响或访问与首次导入logging
的模块相同的根记录器。