本文為您介紹如何使用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));
}
}