PHP就像python中的静态方法一样

时间:2016-05-12 03:10:29

标签: python

我是python的新手。我正在python中编写一个守护进程,在我的守护进程中我有一个记录器类。记录器类是我需要在我的守护进程中使用的东西。现在,而不是在我的每个类中创建类的新实例或传递logger类的对象,我想实现类似静态类的PHP,以便它将内部的数据库连接缓存,我可以从任何地方调用它而无需实例化,喜欢,

Logger::log('This is cool');

我怎么能在python中做到这一点?

1 个答案:

答案 0 :(得分:1)

你可以尝试logging模块。 logging.getLogger确保

  

对具有给定名称的此函数的所有调用都返回相同的记录器实例。这意味着记录器实例永远不需要在应用程序的不同部分之间传递。

例如,在任何地方,当您致电logging.getLogger('the-logger-name')时,您始终会获得相同的对象。

由于您希望将日志写入数据库,因此需要实现自己的handler连接到数据库,并通过logger.addHanlder与记录器连接。

当您通过派生logging.Handler来实施处理程序时,您不必覆盖所有方法 - 结帐BufferingHandlerhandlers implementation Here中的作用。< / p>