本文介紹如何在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 Start
和FC Invoke End
行,以及執行摘要資訊,執行摘要的參數說明如下:
參數 | 說明 |
Request ID | 調用的請求ID。 |
代碼校正碼 | 調用所使用程式碼封裝的校正碼。 |
函數執行時間 | 處理常式實際運行所花費的時間。 |
函數計費時間 | 針對調用計費的時間量。 |
函數設定記憶體 | 分配給函數的記憶體量。 |
實際使用記憶體 | 函數實際使用的最大記憶體量。 |
查看日誌
函數執行完成後,您可以在函數詳情頁的日誌頁簽查看日誌資訊。具體操作和說明,請參見查看調用日誌。