Skip to Content
Technical Articles
Author's profile photo Yohei Fukuhara

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したログも見ることができます。

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

Assigned Tags

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