繁体   English   中英

在SAP NEO中使用com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory进行日志记录

[英]Logging with com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory in SAP NEO

我正在使用com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory进行日志记录。

如果我在本地Java Web Tomcat8服务器(Neo运行时)上运行应用程序,则日志将按预期显示在控制台中。

在SAP Cloud Platform(SAP Neo Java Web Tomcat8)中运行该应用程序后,我只会看到该应用程序启动阶段的日志(弹簧启动横幅等),而看不到运行时的日志。

有任何想法吗?

更多信息:

  1. 在pom.xml中,我从工件中排除了logback-classic和slf4j-api,它们也提供了它们:

     <dependencies> <dependency> <groupId>com.sap.cloud.s4hana.cloudplatform</groupId> <artifactId>scp-neo</artifactId> <version>${sapcloud.version}</version> <exclusions> <exclusion> <groupId>com.sap.cloud.s4hana.frameworks</groupId> <artifactId>hystrix-scp-neo</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.sap.cloud.s4hana</groupId> <artifactId>s4hana-all</artifactId> <version>${sapcloud.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> <exclusion> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> </exclusion> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.olingo</groupId> <artifactId>olingo-odata2-jpa-processor-api</artifactId> <version>${olingo.version}</version> </dependency> <dependency> <groupId>org.apache.olingo</groupId> <artifactId>olingo-odata2-jpa-processor-core</artifactId> <version>${olingo.version}</version> </dependency> <dependency> <groupId>org.apache.olingo</groupId> <artifactId>olingo-odata2-ref</artifactId> <version>${olingo.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> 
  2. 在src / main / resources下,我提供了一个logback.xml,输出到STDOUT。

     <configuration> <conversionRule conversionWord="a" converterClass="com.sap.core.js.logging.converter.ACHPatternConverter"/> <conversionRule conversionWord="b" converterClass="com.sap.core.js.logging.converter.BundleNamePatternConverter"/> <conversionRule conversionWord="s" converterClass="com.sap.core.js.logging.converter.DSRPatternConverter"/> <conversionRule conversionWord="z" converterClass="com.sap.core.js.logging.converter.SpaceApplPatternConverter"/> <conversionRule conversionWord="u" converterClass="com.sap.core.js.logging.converter.UserPatternConverter"/> <conversionRule conversionWord="o" converterClass="com.sap.core.js.logging.converter.UTFOffsetPatternConverter"/> <jmxConfigurator/> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"/> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="STDOUT"/> </root> 

  3. 运行时的记录器配置:我已将ROOT设置为“ INFO”,并将我的名称空间设置为“ TRACE”。

期望的是,写入了我使用logger.info/logger.error/logger.debug等发布的日志。 但是,在SAP SCP Cockpit中,仅写入HTTP访问日志和垃圾收集日志。 “其他日志”包括启动阶段的日志,但是在服务器启动之后,将不再写入其他内容。 “默认跟踪”中填充了或多或少的空白跟踪。

启动阶段日志

其他日志为空

在Neo中,默认情况下(所有内容)的日志级别设置为ERROR。

为了能够查看其他日志级别,您必须在应用程序运行(启动)时在SCP Cockpit中对其进行配置。 (如果应用程序停止,您将看不到任何记录器)

在SCP驾驶舱中,转到Java应用程序,然后转到“日志记录”,然后单击“配置日志记录器”。

SCP Neo中用于Java应用程序的记录器

这里有一篇很好的博客文章(请参阅调整云日志级别):

https://blogs.sap.com/2017/09/19/logging-on-sap-s4hana-cloud-sdk/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM