全部產品
Search
文件中心

Simple Log Service:使用Java SDK管理Project

更新時間:Jan 06, 2026

專案(Project)是Log Service的資源嵌入式管理單元,包含LogStore、MetricStore和機器組等資源,同時也是您訪問Log Service資源的入口。本文通過程式碼範例介紹如何建立、修改、查詢、刪除Project等。

前提條件

您已完成以下操作:

  • 已安裝Java開發環境。

    Log ServiceJava SDK支援JRE 6.0及以上的Java運行環境,您可以執行java -version命令檢查您已安裝的Java版本。如果未安裝,可以從Java官方網站下載安裝包並完成安裝。

  • 已安裝Log ServiceJava SDK。具體操作,請參見安裝Java SDK

注意事項

本樣本以華東1(杭州)的公網Endpoint為例,其公網Endpoint為https://cn-hangzhou.log.aliyuncs.com

如果您通過與Project同地區的其他阿里雲產品訪問Log Service,請使用內網Endpointhttps://cn-hangzhou-intranet.log.aliyuncs.com

關於Log Service支援的地區與Endpoint的對應關係,請參見服務入口

建立Project範例程式碼

以下代碼用於建立名為ali-test-project的Project。

import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;

public class CreateProject {
    public static void main(String[] args) throws LogException {
        // 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // 輸入Project名稱。
        String projectName = "ali-test-project";
        // 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
        String host = "https://cn-hangzhou.log.aliyuncs.com";

        // 建立Log ServiceClient。
        Client client = new Client(host, accessId, accessKey);
        // 建立Project。
        try {
            String projectDescription = "project description";
            System.out.println("ready to create project");
            client.CreateProject(projectName, projectDescription);
            System.out.println(String.format("create project %s success",projectName));

        } catch (LogException e) {
            System.out.println("LogException e :" + e.toString());
            System.out.println("error code :" + e.GetErrorCode());
            System.out.println("error message :" + e.GetErrorMessage());
            throw e;
        }
    }
}

預期結果如下:

ready to create project
create project ali-test-project success

修改Project範例程式碼

以下代碼用於修改名為ali-test-project的Project描述資訊。

import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.UpdateProjectRequest;

public class UpdateProject {
    public static void main(String[] args) throws LogException {
        // 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // 輸入Project名稱。
        String projectName = "ali-test-project";
        // 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
        String host = "https://cn-hangzhou.log.aliyuncs.com";

        // 建立Log ServiceClient。
        Client client = new Client(host, accessId, accessKey);
        // 修改Project。
        try {
            String projectDescription = "This is the new project description";
            System.out.println("ready to update project");
            UpdateProjectRequest request = new UpdateProjectRequest(projectName, projectDescription);
            client.updateProject(request);
            System.out.println(String.format("update project %s success",projectName));

        } catch (LogException e) {
            System.out.println("LogException e :" + e.toString());
            System.out.println("error code :" + e.GetErrorCode());
            System.out.println("error message :" + e.GetErrorMessage());
            throw e;
        }
    }
}

預期結果如下:

ready to update project
update project ali-test-project success

查詢所有Project範例程式碼

以下代碼用於查詢所有Project。

import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.Project;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.response.ListProjectResponse;

public class ListProject {
    public static void main(String[] args) throws LogException {
        // 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // 輸入Project名稱。
        String projectName = "ali-test-project";
        // 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
        String host = "https://cn-hangzhou.log.aliyuncs.com";

        // 建立Log ServiceClient。
        Client client = new Client(host, accessId, accessKey);
        // 查詢所有Project。
        try {
            System.out.println("ready to list project");
            ListProjectResponse response = client.ListProject();
            for (Project project : response.getProjects()) {
                System.out.println(project.getProjectName());
            }

        } catch (LogException e) {
            System.out.println("LogException e :" + e.toString());
            System.out.println("error code :" + e.GetErrorCode());
            System.out.println("error message :" + e.GetErrorMessage());
            throw e;
        }
    }
}

預期結果如下:

ready to list project
ali-test-project
local-ide

查詢指定Project範例程式碼

以下代碼用於查詢指定Project資訊。

import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.response.GetProjectResponse;

public class GetProject {
    public static void main(String[] args) throws LogException {
        // 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // 輸入Project名稱。
        String projectName = "ali-test-project";
        // 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
        String host = "https://cn-hangzhou.log.aliyuncs.com";

        // 建立Log ServiceClient。
        Client client = new Client(host, accessId, accessKey);
        // 查詢指定Project。
        try {
            System.out.println("ready to get project");
            GetProjectResponse response = client.GetProject(projectName);
            System.out.println(String.format("get project %s success",projectName));
            System.out.println("The Project description is:" + response.GetProjectDescription());
            System.out.println("The Project owner info is:" + response.GetProjectOwner());
            System.out.println("The Project region info is:" + response.GetProjectRegion());
            System.out.println("The Project status info is:" + response.GetProjectStatus());

        } catch (LogException e) {
            System.out.println("LogException e :" + e.toString());
            System.out.println("error code :" + e.GetErrorCode());
            System.out.println("error message :" + e.GetErrorMessage());
            throw e;
        }
    }
}

預期結果如下:

ready to get project
get project ali-test-project success
The Project description is:project description
The Project owner is:Ownerid
The Project region is:cn-hangzhou
The Project status is:Normal

查詢Project中日誌範例程式碼

以下代碼用於指定Project中指定LogStore的日誌數量。

import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.QueriedLog;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.response.GetLogsResponse;

public class GetProjectLogs {
    public static void main(String[] args) throws LogException {
        // 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // 輸入Project名稱。
        String projectName = "ali-test-project";
        // 輸入LogStore名稱。
        String logstoreName = "ali-test-logstore";
        // 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
        String host = "https://cn-hangzhou.log.aliyuncs.com";

        // 建立Log ServiceClient。
        Client client = new Client(host, accessId, accessKey);
        // 使用SQL查詢指定Project中指定LogStore的日誌數量。
        try {
            System.out.println("ready to get project logs");
            String query = "SELECT COUNT(*) as pv FROM " + logstoreName + " where __time__ > 1646102500 and __time__ < 1646103400";
            GetLogsResponse response = client.GetProjectLogs(projectName,query);
            for (QueriedLog log: response.getLogs()) {
                System.out.println(log.GetLogItem().ToJsonString());
            }

        } catch (LogException e) {
            System.out.println("LogException e :" + e.toString());
            System.out.println("error code :" + e.GetErrorCode());
            System.out.println("error message :" + e.GetErrorMessage());
            throw e;
        }
    }
}

預期結果如下:

ready to get project logs
{"pv":"4615","logtime":1}

刪除Project範例程式碼

以下代碼用於刪除名為ali-test-project的Project。

import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;

public class DeleteProject {
    public static void main(String[] args) throws LogException {
        // 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // 輸入Project名稱。
        String projectName = "ali-test-project";
        // 設定服務存取點。此處以杭州為例,其它地區請根據實際情況填寫。
        String host = "https://cn-hangzhou.log.aliyuncs.com";

        // 建立Log ServiceClient。
        Client client = new Client(host, accessId, accessKey);
        // 刪除Project。
        try {
            System.out.println("ready to delete project");
            client.DeleteProject(projectName);
            System.out.println(String.format("delete project %s success",projectName));

        } catch (LogException e) {
            System.out.println("LogException e :" + e.toString());
            System.out.println("error code :" + e.GetErrorCode());
            System.out.println("error message :" + e.GetErrorMessage());
            throw e;
        }
    }
}

預期結果如下:

ready to delete project
delete project ali-test-project success

相關文檔