本文介绍如何在Java运行环境下打印和查看日志。

打印日志

函数往标准输出stdout或标准错误stderr打印的内容会被收集到创建服务时指定的Logstore中,您可以使用fc-java-core库提供的context.getLogger方法打印日志,也可以使用常见的日志库(如logback)打印日志。

说明 推荐您使用context.getLogger方法打印日志,使用该方法打印的日志自动包含RequestId,方便在出现错误的时候定位问题日志。

使用context.getLogger打印日志

使用该方法打印的每条日志中都包含时间、RequestId和日志级别等信息。示例代码如下所示。

package example;

import com.aliyun.fc.runtime.Context;
import com.aliyun.fc.runtime.StreamRequestHandler;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class HelloFC implements StreamRequestHandler {

    @Override
    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
        context.getLogger().info("hello world");
        outputStream.write(new String("hello world").getBytes());
    }
}
执行上面的示例代码输出的日志内容如下所示。
message:2017-07-05T05:13:35.920Z a72df088-f738-cee3-e0fe-323ad891**** [INFO] hello world        
您也可以在代码中使用以下代码,打印不同级别的日志信息:
  • context.getLogger().trace:打印TRACE级别的日志信息。
  • context.getLogger().debug:打印DEBUG级别的日志信息。
  • context.getLogger().info:打印INFO级别的日志信息。
  • context.getLogger().warn:打印WARN级别的日志信息。
  • context.getLogger().error:打印ERROR级别的日志信息。
  • context.getLogger().fatal:打印FATAL级别的日志信息。

函数计算会记录每次调用的FC Invoke StartFC Invoke End行,以及执行摘要信息,执行摘要的参数说明如下:

参数 说明
Request ID 调用的请求ID。
代码校验码 调用所使用代码包的校验码。
函数执行时间 处理程序实际运行所花费的时间。
函数计费时间 针对调用计费的时间量。
函数设置内存 分配给函数的内存量。
实际使用内存 函数实际使用的最大内存量。

查看日志

函数执行完成后,您可以在函数详情页的调用日志页签查看日志信息。具体操作和说明,请参见查看调用日志