Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Fukuhara
Product and Topic Expert
Product and Topic Expert
1,368
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したログも見ることができます。


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