python日志关闭和应用程序退出

Gre*_*uhn 5 python logging

我在应用程序中使用日志记录模块,我突然想到,如果日志记录模块支持一种可以正常关闭文件句柄等然后关闭应用程序的方法,那就太好了。

例如:

logger = logging.getLogger('my_app')
logger.fatal("We're toast!")
Run Code Online (Sandbox Code Playgroud)

致命的方法(或类似的方法)将:

  1. 正常记录消息
  2. logging.shutdown()
  3. 调用 sys.exit(1)

想法?这样的东西存在吗?这是一个坏主意吗?

我为什么要这个?好吧,我的代码中有几个地方我希望应用程序死掉,并且不断重复代码来执行23似乎是一种浪费。

Wol*_*lph 3

也许不是最干净的解决方案,但我想到的是:

try:
    # Your main function
    main()
except:
    logger.exception('some message')
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

在实际代码中只需引发任何异常

虽然这会给你一个不同的记录器。如果只是关于关闭部分,只需使用 try/finally 即可:

try:
    # do whatever here
    main()
finally:
    logging.shutdown()
Run Code Online (Sandbox Code Playgroud)