开发者社区 > 云原生 > Serverless > 正文

在函数计算为什么python运行时不print日志?

在函数计算为什么python运行时不print日志?

展开
收起
三分钟热度的鱼 2024-05-16 08:43:23 41 0
2 条回答
写回答
取消 提交回答
  • 在Python运行环境中,如果使用print语句输出的日志没有显示,可能有以下几个原因:

    日志被重定向:函数计算FC会收集标准输出(stdout)和标准错误(stderr)的日志,并将其发送到配置的日志服务。如果日志没有显示,可能是日志配置有问题,导致日志没有被正确收集。请检查服务的Logstore配置是否正确,确保日志服务已经启用。

    日志级别不正确:在Python中使用logging模块时,日志级别默认是INFO。如果设置的日志级别高于INFO(例如WARNING、ERROR或CRITICAL),INFO级别的日志不会被打印。确保你的日志级别设置正确,例如:
    import logging
    logging.basicConfig(level=logging.INFO)

    代码错误:确认print语句在正确的函数执行路径中,确保它在handler函数中被调用。如果print语句在其他地方,例如在初始化或错误处理代码块中,可能不会在预期的地方执行。

    编码问题:确保你的输出内容是字符串,如果包含非ASCII字符,可能需要设置合适的编码,例如print(s.encode('utf-8'))。

    使用context.getLogger():在函数计算FC中,推荐使用context.getLogger()来记录日志,因为它会自动收集并发送到日志服务。例如:
    import logging
    def handler(event, context):
    logger = context.getLogger()
    logger.info('Hello World')

    使用context对象:如果函数并发度大于1,使用context.getLogger()来确保每个并发请求的日志不会混淆。例如:
    def handler(event, context):
    context.getLogger().info("Hello world")

    检查调用日志:在函数计算控制台的调用日志页面,查看是否有日志输出,这可以帮助确认日志是否被收集。

    网络问题:如果函数计算服务的网络配置有问题,可能导致日志无法发送到日志服务。

    权限问题:检查函数计算的角色是否具有足够的权限访问日志服务。

    配置问题:确保函数配置中的logConfig已经开启,允许收集日志。

    函数执行超时:如果函数执行超时,日志可能没有完全发送到日志服务。此回答整理自钉群“阿里函数计算客户【已满,加2群:64970014484】”

    2024-05-16 10:35:04
    赞同 展开评论 打赏
  • 函数往标准输出stdout打印的日志内容会被收集到创建服务时指定的Logstore中,您可以使用以下方式打印日志。

    使用logging模块打印日志
    使用此方法打印的每条日志中都包含时间、RequestId和日志级别等信息,RequestId方便您在出错时定位问题日志。代码示例如下所示。

    import logging

    def handler(event, context):
    logger = logging.getLogger()
    logger.info('hello world')
    return 'done'
    执行以上代码,输出的日志内容如下所示。

    2017-07-05T05:13:35.920Z a72df088-f738-cee3-e0fe-323ad**e5 [INFO] hello world

    使用print打印日志
    使用该方法打印日志会将内容原样输出到日志中。代码示例如下所示。

    def handler(event, context):
    print ('hello world')
    return 'done'
    执行以上代码,输出的日志内容如下所示。

    hello world
    image.png

    参考文档https://help.aliyun.com/zh/functioncompute/user-guide/logging-2?spm=a2c4g.11186623.0.i27

    2024-05-16 09:06:54
    赞同 2 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
    Kubernetes下日志实时采集、存储与计算实践 立即下载
    日志数据采集与分析对接 立即下载