Skip to Content
Technical Articles

SAP CP CF AppとApplication Loggingを使ってみた

SAP CP CF Appから出すログをApplication Loggingを使ってKibanaで見てみました。

仕事の合間にやっているので備忘録レベルです。

設定手順

1. Application Loggingインスタンス作成

CF cliでログインしてApplication Loggingのインスタンスを作成します。

cf login
cf create-service application-logs lite my-application-logs

2. CF App 作成

2.1. Java Project作成

mavenでSAP Cloud SDKのプロジェクトを作成します。

mvn archetype:generate "-DarchetypeGroupId=com.sap.cloud.sdk.archetypes" "-DarchetypeArtifactId=scp-cf-tomee" "-DarchetypeVersion=RELEASE"

途中のプロンプトでは以下を入力。”artifactId”に入力した”log-test”がApplication名です。

  • groupId: com.sap.cloud.sdk.log
  • artifactId: log-test
  • version: 1.0-SNAPSHOT
  • package: com.sap.cloud.sdk.log

2.2. Hello World変更

ログ出力部分を少し変えました。ログ出力のメッセージを変え、レベルをdebug, info, warn, errorの4種類出しています。

package com.sap.cloud.sdk.log;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;



@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet
{
    private static final long serialVersionUID = 1L;
    private static final Logger logger = LoggerFactory.getLogger(HelloWorldServlet.class);

    @Override
    protected void doGet( final HttpServletRequest request, final HttpServletResponse response )
        throws IOException
    {
        logger.debug("fukuhara: debug");
        logger.info("fukuhara: info");
        logger.warn("fukuhara: warn");
        logger.error("fukuhara: error");
        response.getWriter().write("Hello World!");
    }
}

2.3. pom.xml変更

なぜかSAP Cloud SDKはusage-analytics-maven-pluginでよくエラーを起こします。バージョンを3.27から3.25に下げました。↓は一部抜粋

            <plugin>
                <groupId>com.sap.cloud.sdk.plugins</groupId>
                <artifactId>usage-analytics-maven-plugin</artifactId>
                <version>3.25.0</version>
                <executions>

2.4. manifest.yml変更

env->SET_LOGGING_LEVEVLで、com.sap.cloud.sdkをDEBUGに下げます。

また、先に作ったサービスmy-application-logsをbindします。

---
applications:

- name: log-test
  memory: 1024M
  timeout: 300
  random-route: true
  path: application/target/log-test-application.war
  buildpacks:
    - sap_java_buildpack
  env:
    TARGET_RUNTIME: tomee7
    SET_LOGGING_LEVEL: '{ROOT: INFO, com.sap.cloud.sdk: DEBUG}'
    JBP_CONFIG_SAPJVM_MEMORY_SIZES: 'metaspace:128m..'
  services:
  - my-application-logs

2.5. CFへデプロイ

ビルドとCF cliを使ってCF appへデプロイします。

# プロジェクトルートディレクトリから
cd application && mvn clean package && cd .. && cf push

試してみる

デプロイされたアプリケーションのパス”/hello”ににブラウザからアクセスします。

「Hello World!」が返ってきて成功確認。

SAP Cloud CockpitでApplicationのメニューから「Logs」を選んで「Open Kinaba Dashboard」をクリックします。

Overview画面です。

検証・開発時使えそうなのは「Requests and Logs」のダッシュボードです。Requestが404などでFailしたログも見ることができます。

上の方にある検索窓を使うことで、ログをテキスト検索できます。

Be the first to leave a comment
You must be Logged on to comment or reply to a post.