本文介紹如何在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 Start
和FC Invoke End
行,以及執行摘要信息,執行摘要的參數說明如下:
參數 | 說明 |
Request ID | 調用的請求ID。 |
代碼校驗碼 | 調用所使用代碼包的校驗碼。 |
函數執行時間 | 處理程序實際運行所花費的時間。 |
函數計費時間 | 針對調用計費的時間量。 |
函數設置內存 | 分配給函數的內存量。 |
實際使用內存 | 函數實際使用的最大內存量。 |
查看日志
函數執行完成后,您可以在函數詳情頁的日志頁簽查看日志信息。具體操作和說明,請參見查看調用日志。