使用 Python 的话用不着像 Java 那样是考虑用 Logback 还是 Log4J 的问题,因为它内置提供了完备功能的 logging 库。虽然 JDK 也有 java.util.logging(JUL), 它的特性其实也不差,如日志级别,输出格式,不同的输出目的地的选择,但在 Logback 和 Log4J 的光环之下几乎无人问津。相比而言 Python 的 logging 却极为受宠,非必要时基本不会去考虑引入第三方的日志库,如 Loguru, LogBook, Structlog, Picologging, 尽管它们也很出色,毕竟是庶出。logging 的最基本用法
在基本前面加是最字,是因为这一节仅仅是如何让 logging 作为 print() 的替代品,暂不涉及到参数的传递,异常的输出,以及格式定制,日志往哪里输出的问题。1import logging 2 3logging.info("hello")
运行,什么也看不到,因为 Python logging 的默认级别是 warning, 这不符合人的基本认知,一般 logging.info() 起码是用来替代 print() 的,居然直接用无法输出,不知该库的设计者是怎么个想法。 Read More
通常在 Python 应用中简单的配置使用内置的 logging 是这样的1import logging 2 3logging_format = '%(asctime)s - %(levelname)s - %(module)s(%(funcName)s:%(lineno)d) - %(message)s' 4logging.basicConfig(level=logging.INFO, format=logging_format) 5 6logging.info('hello world')
假如文件名为 test.py, 用 python test.py 执行后输出2022-01-25 21:02:47,231 - INFO - test(<module>:6) - hello world
在 Lambda 中的现象
可是这同样的代码放到 AWS Lambda Python 代码中却不灵验了,logging.info()将得不到任何输出。 Read More