全部產品
Search
文件中心

Function Compute:日誌

更新時間:Jul 06, 2024

本文介紹如何在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層級的日誌資訊。

Function Compute會記錄每次調用的FC Invoke StartFC Invoke End行,以及執行摘要資訊,執行摘要的參數說明如下:

參數

說明

Request ID

調用的請求ID。

代碼校正碼

調用所使用程式碼封裝的校正碼。

函數執行時間

處理常式實際運行所花費的時間。

函數計費時間

針對調用計費的時間量。

函數設定記憶體

分配給函數的記憶體量。

實際使用記憶體

函數實際使用的最大記憶體量。

查看日誌

函數執行完成後,您可以在函數詳情頁的日誌頁簽查看日誌資訊。具體操作和說明,請參見查看調用日誌