答えて

0

Google Cloud Consoleでは、必要に応じて新しいプロジェクトを作成し、次にenable the Stackdriver Error Reporting APIget an API keyを作成します。

次に、簡単なStackdriverエラー報告report API endpointを使用します.HTTP POST要求とAPIキーを使用してエラースタックトレースを送信します。

すべての例外をキャッチし、予想される構造でフォーマットし、StackdriverにPOSTします(少なくともJDK v1.7を使用していることを確認してください)。ここで

は、アプリケーションのコントローラに追加する必要があるコードです:

public class Application extends Controller { 

@Catch(value={Exception.class}) 
public static void onException(Exception ex) { 
    StringWriter exceptionWriter = new StringWriter(); 
    ex.printStackTrace(new PrintWriter(exceptionWriter)); 

    Map<String, Object> payload = new HashMap<String, Object>(); 
    payload.put("message", exceptionWriter.toString()); 
    Map<String,String> serviceContextData = new HashMap<String, String>(); 
    serviceContextData.put("service", "randomgift"); 
    payload.put("serviceContext", serviceContextData); 
    Gson gson = new Gson(); 
    String payloadStr = gson.toJson(payload); 

    Map<String, String> headers = new HashMap<String,String>(); 
    headers.put("Content-Type", "application/json"); 

    // Report to Stackdriver Error Reporting: 
    String apikey = "<your-api-key>"; 
    String projectName = "<your-project-id>"; 
    WS.url("https://clouderrorreporting.googleapis.com/v1beta1/projects/" + projectName + "/events:report?key=" + apikey) 
     .headers(headers) 
     .body(payloadStr) 
     .post(); 

    Logger.info("Error reported"); 
} 

}

関連する問題