全部產品
Search
文件中心

MaxCompute:輸出錯誤記錄檔樣本

更新時間:Feb 28, 2024

本文為您介紹如何使用MaxCompute Java SDK輸出錯誤記錄檔。

介面說明

MaxCompute Java SDK提供了抽象類別RetryLogger,詳情請參見SDK Java Doc
public static abstract class RetryLogger {
/**
 * 當RestClient發生重試前的回呼函數
 * @param e
 *     錯誤異常
 * @param retryCount
 *     重試計數
 * @param retrySleepTime
 *     下次需要的重試時間
 */
public abstract void onRetryLog(Throwable e, long retryCount, long retrySleepTime);
}

您只需實現一個自己的RetryLogger子類,再在初始化ODPS對象時使用odps.getRestClient().setRetryLogger(new UserRetryLogger());進行日誌輸出。

樣本

// init odps
odps.getRestClient().setRetryLogger(new UserRetryLogger());
// your retry logger
public class UserRetryLogger extends RetryLogger {
 @Override
 public void onRetryLog(Throwable e, long retryCount, long sleepTime) {
   if (e != null && e instanceof OdpsException) {
     String requestId = ((OdpsException) e).getRequestId();
             if (requestId != null) {
                   System.err.println(String.format(
           "Warning: ODPS request failed, requestID:%s, retryCount:%d, will retry in %d seconds.", requestId, retryCount, sleepTime));
       return;
     }
   }
   System.err.println(String.format(
       "Warning: ODPS request failed:%s, retryCount:%d, will retry in %d seconds.", e.getMessage(), retryCount, sleepTime));
 }
}