如果我在Google App Engine中运行了一个python应用程序,如何在运行时动态更改应用程序的日志记录级别?应用程序的日志记录级别目前通过日志记录配置文件完成。
一种强制方式是在本地更新日志配置文件,然后运行“appcfg.py -R update path_to_product'”。但这将更新所有修改过的文件。
有更好的方法吗?
我看了dictConfig和fileConfig。但是使用这些方法不会更新正在运行的进程的日志记录配置(特别是那些在不同的应用程序引擎实例上运行的进程)。
答案 0 :(得分:1)
您可以创建一个处理程序方法并调用它以在运行时动态设置日志级别。
例如:
def logLevel(self, request):
# ?value= NOTSET, DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL
value = request.value.upper() if request.value else None
logging.info("Setting log level to: {}".format(value))
logging.getLogger().setLevel(value)
logging.debug("Test debug")
logging.info("Test info")
logging.warn("Test warn")
logging.error("Test error")
logging.critical("Test critical")
特定记录器也可能是目标,例如:
logging.getLogger('suds').setLevel(value)
(请注意,在GAE启动器中,“调试”日志默认不显示。)