Technology Blog Posts by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
Fukuhara
Product and Topic Expert
Product and Topic Expert
1,703
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したログも見ることができます。


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