zoukankan      html  css  js  c++  java
  • 如何在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_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实例。

    要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

  • 相关阅读:
    ajax收藏
    excel提取文本格式时分秒中数字的方法并计算成秒的公式
    vi编辑模式中按方向键变ABCD的解决方法
    IIS配置Url重写实现http自动跳转https的重定向方法
    IIS中启用目录浏览功能后不能下载未知扩展名文件的解决方法
    Nginx禁止IP访问,只允许域名访问
    nginx在Window平台http自动跳转https设置方法
    通过清理注册表方式清理window远程连接的历史记录
    DOS批处理添加IP域名,备份与恢复
    windows修改snmp端口号方法
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/9163468.html
Copyright © 2011-2022 走看看