打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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_groupSUBKEY sy-unameFIELDS 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"><PatternLayoutpattern="%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实例。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
spring boot默认日志配置,以及改用log4j日志配置
2.日志组件的统一门面
log4j2的使用
mybatis 3.2.8 + log4j2.0.2 控制台输出sql语句
log4j2的配置
Java 新老程序员都必须知道的优秀第三方库
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服