专栏首页Jerry的SAP技术分享如何在ABAP Netweaver和CloudFoundry里记录并查看日志

如何在ABAP Netweaver和CloudFoundry里记录并查看日志

版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/details/80641634

Netweaver

要记录日志需要有一个checkpoint group,可以自行创建也可以使用标准的。这里我重用标准的group:DEMO_CHECKPOINT_GROUP。

tcode SAAB,点Display <->Activate进入编辑模式,将Logpoints设置为”Log”,日期设为Today,意为当天生效。

Netweaver的日志记录大多是基于用户级别的,这一点比较方便。给想打开日志记录的用户创建一个打开日志开关的配置:

新建一个report名称为ZCONTEXT, 下面代码的含义是把当前report名称(包含在环境变量sy-cprog)和当前report的运行环境(online运行还是offline运行)写入该checkpoint group。因为可能有其他人也会使用该group,所以用SUBKEY区分不同的用户。

LOG-POINT ID demo_checkpoint_group
SUBKEY sy-uname
FIELDS sy-batch sy-cprog.

执行完report后返回SAAB即可查看到记录的日志。

双击能看到记录的明细。

CloudFoundry

总的guideline在SAP官方Github上有。

这里简述要点。

SAP云平台的CloudFoundry环境里的日志记录推荐使用slf4j(Simple Log Facade for Java)。即Java代码里使用slf4j提供的接口进行日志记录,而具体的日志记录实现可以通过配置文件来指定。

我做了一个例子,全部源代码在我的github上。 我的例子使用log4j2作为日志记录的实现。

(1) 在Java项目的pom.xml里定义slf4j和log4j2的版本号。

<properties>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
  <cf-logging-version>2.1.5</cf-logging-version>
  <log4j2.version>2.8.2</log4j2.version>
  <slf4j.version>1.7.24</slf4j.version>
</properties>

在pom.xml文件的dependency区域维护相关的dependency:

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${slf4j.version}</version>
</dependency>

<dependency>
  <groupId>com.sap.hcp.cf.logging</groupId> 
  <artifactId>cf-java-logging-support-log4j2</artifactId>
  <version>${cf-logging-version}</version>
</dependency>

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-slf4j-impl</artifactId>
  <version>${log4j2.version}</version>
</dependency>

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>${log4j2.version}</version>
</dependency>

<dependency>
  <groupId>com.sap.hcp.cf.logging</groupId>
  <artifactId>cf-java-logging-support-servlet</artifactId>
  <version>${cf-logging-version}</version>
</dependency>

(2) 在CLASSPATH下新建log4j2.xml, 使用如下源代码:

<Configuration status="warn" strict="true"
packages="com.sap.hcp.cf.log4j2.converter,com.sap.hcp.cf.log4j2.layout">
<Appenders>
<Console name="STDOUT-JSON" target="SYSTEM_OUT" follow="true">
<JsonPatternLayout charset="utf-8" />
</Console>
<Console name="STDOUT" target="SYSTEM_OUT" follow="true">
<PatternLayout
pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} [%mdc] - %msg%n" />
</Console>
</Appenders>
<Loggers>
<!-- Jerry: Log level: INFO -->
<Root level="${LOG_ROOT_LEVEL:-INFO}">
<AppenderRef ref="STDOUT-JSON" />
</Root>
<Logger name="com.sap.hcp.cf" level="${LOG_HCP_CF_LEVEL:-INFO}" />
</Loggers>
</Configuration>

(3) 在SAP云平台Cockpit里创建一个新的log instance:

取名为jerry-log:

(4) 代码里的使用:

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

private static final Logger LOGGER = LoggerFactory.getLogger(ConnectivityServlet.class);

然后使用LOGGER.info 记录日志。

(5) 如何查询记录的日志: 点击Logs标签页->Open Kibanna Dashboard, 能看到上图”Diablo Connecting to backend system”对应的日志:

在log明细里能看到之前在SAP云平台Cockpit里创建的Log service实例。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在ABAP Netweaver和CloudFoundry里记录并查看日志

    要记录日志需要有一个checkpoint group,可以自行创建也可以使用标准的。这里我重用标准的group:DEMO_CHECKPOINT_GROUP。

    Jerry Wang
  • 最简单的SAP云平台开发教程 - 如何开发UI5应用并运行在SAP云平台上

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • Initial load DNL_CUST_PROD0 并找出SAP S4表和CRM表的mapping关系

    目标: Debug Outbound queue找出从Q7Q发送到QDD的数据。 Debug Inbound queue找出接受Q7Q传过来的数据,如何转换...

    Jerry Wang
  • 自适应的逗号

    TalkPython
  • SVM梯度求导及实现

    昨晚看了一部电影,叫做我是马布里,非常正能量,推荐给各位,看完这部电影的总结话是:

    公众号guangcity
  • 为什么我的Redis这么“慢”?

    Redis 作为内存数据库,拥有非常高的性能,单个实例的 QPS 能够达到 10W 左右。

    架构师修行之路
  • day77_淘淘商城项目_10_ Nginx代理详解 + 单点登录系统工程搭建 + 接口文档讲解_匠心笔记

    目前访问后台系统:   http://localhost:8081/ 目前访问首页系统:   http://localhost:8082/ 目前访问搜索结果页面...

    黑泽君
  • Docker最全教程——Redis容器化以及排行榜实战(十三)

    容器教程的路还很长,笔者尽量根据实践来不断地完善。由于在编写的过程中还会有完善和补充,后续可能会以番外来补充。

    雪雁-心莱科技
  • Docker最全教程——Redis容器化以及排行榜实战(十四)

    容器教程的路还很长,笔者尽量根据实践来不断地完善。由于在编写的过程中还会有完善和补充,后续可能会以番外来补充。

    心莱科技雪雁
  • Redis到底快在哪里,你猜呢

    Redis执行命令的速度非常快,根据官方给的性能可以达到10w+ qps。那么本文主要介绍到底Redis快在哪里。

    公众号 IT老哥

扫码关注云+社区

领取腾讯云代金券