【发布时间】:2021-11-20 08:19:08
【问题描述】:
我编写了一个 Python 3.8.6 包,用于在 Compute Engine 实例上编排和运行多个任务,分为多个子包。
package/
__init__.py
subpackage1
subpackage2
subpackage3
我设置了日志记录以将日志提交到 Cloud Logging 并导入子包类以在包含入口点 (package/__init__.py) 的文件中完成它们的工作。
import logging as pylogging
from google.cloud import logging
from google.cloud.logging.handlers import CloudLoggingHandler
from package.subpackage1.script1 import Class1
from package.subpackage2.script2 import Class2
from package.subpackage3.script3 import Class3
pylogging.basicConfig(level=20)
LOGGER = pylogging.getLogger()
def main():
log_client = logging.Client()
handler = CloudLoggingHandler(log_client, name="package")
LOGGER.addHandler(handler)
LOGGER.info("Starting work")
Class1()
Class2()
Class3()
LOGGER.info("Finished work")
if __name__ == '__main__':
main()
要从我导入的子包中进行日志记录,并以类似方式设置日志记录。
import logging as pylogging
pylogging.basicConfig(level=20)
LOGGER = pylogging.getLogger()
class Class1:
def __init__(self):
LOGGER.info("Work Class1")
日志以相同的日志名称“package”see here 提交到 Cloud Logging。一些子包会提交大量的日志,因此一般很难把握运行的大局。
如何设置我的代码以将 Cloud Logging 中的日志分隔为不同的日志名称?
【问题讨论】:
-
为什么不使用多个处理程序?
-
我尝试这样做,但随后多次提交日志,并在 Cloud Logging 中搞砸了。也许我做错了……如何正确使用多个处理程序?
标签: python logging google-cloud-platform google-compute-engine google-cloud-logging