JavaでRDSのログファイル一覧を取得する

広大なネットの海を探しても、JavaDocしか見つからず使い方に四苦八苦しました。

ログファイルの書込が10分以内のエラーログを取得します。

sloq-queryログとかは特にいらないので、ファイル名を絞り込んでいます。
さすがに10ファイル以上はないでしょう・・・。

 

  private static List<DescribeDBLogFilesDetails> getFileList(AmazonRDS client,
      DBInstance inscance) {
    List<DescribeDBLogFilesDetails> list =
      new ArrayList<DescribeDBLogFilesDetails>();
    //ログファイルの書込10分以内
    long time = Time.now().getMilliseconds() - (10L * 60 * 1000);
    try {
      DescribeDBLogFilesRequest request =
        new DescribeDBLogFilesRequest()
          .withDBInstanceIdentifier(inscance.getDBInstanceIdentifier())
          .withFilenameContains("error")//ファイル名にerrorを含む
          .withMaxRecords(10)//10ファイルを取得
          .withFileSize(1L)//ファイルサイズが0じゃないのを取得
          .withFileLastWritten(time);
      DescribeDBLogFilesResult files = client.describeDBLogFiles(request);
      if (files != null) {
        list = files.getDescribeDBLogFiles();
      }
    } catch (Exception ex) {
    }
    return list;

  }