Ведение журнала с помощью com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory в SAP NEO - PullRequest
0 голосов
/ 06 июля 2018

Я использую com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory для ведения журнала.

Журналы будут отображаться, как и ожидалось, в консоли, если я запустил приложение на локальном сервере Java Web Tomcat8 (Neo runtime).

После запуска приложения в облачной платформе SAP (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 записываются только журналы HTTP-доступа и журналы сбора мусора. «Другие журналы» включают в себя запись фазы запуска, но после запуска сервера больше ничего не будет записываться. «Трассы по умолчанию» заполнены более или менее пустыми трассами.

Log of startup phase

Other logs empty

1 Ответ

0 голосов
/ 29 сентября 2018

В Neo уровень журнала (для всего) по умолчанию установлен на ERROR.

Чтобы увидеть другие уровни журнала, вы должны настроить его в SCP Cockpit во время работы приложения (запуска) . (Вы не увидите никаких регистраторов, если приложение остановлено)

В SCP Cockpit перейдите в приложение Java, затем перейдите в раздел «Ведение журнала» и нажмите «Настроить средства ведения журнала».

Loggers in SCP Neo for a Java application

Здесь есть хороший пост в блоге (см. Настройка уровня журнала облака):

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

...