Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring boot应用程序引擎日志格式不正确_Java_Spring_Spring Boot_Google App Engine_Google Cloud Logging - Fatal编程技术网

Java Spring boot应用程序引擎日志格式不正确

Java Spring boot应用程序引擎日志格式不正确,java,spring,spring-boot,google-app-engine,google-cloud-logging,Java,Spring,Spring Boot,Google App Engine,Google Cloud Logging,我在appengine上部署了一个SpringBoot2应用程序,它做得很好 唯一的问题是,标准日志机制与gcp日志系统冲突。我得到的是上百条信息日志,即使有异常抛出或警告 我认为问题在于日志非常长,并且从一些不必要的数据开始 在我的配置中,我使用lombok+Slf4j在我的应用程序中登录,我认为默认情况下启用了logback,因为我已经使用了springbootstarterweb 我的pom具有以下依赖性: <dependency> <gr

我在appengine上部署了一个SpringBoot2应用程序,它做得很好

唯一的问题是,标准日志机制与gcp日志系统冲突。我得到的是上百条信息日志,即使有异常抛出或警告

我认为问题在于日志非常长,并且从一些不必要的数据开始

在我的配置中,我使用lombok+Slf4j在我的应用程序中登录,我认为默认情况下启用了logback,因为我已经使用了springbootstarterweb

我的pom具有以下依赖性:

   <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </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>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter-data-datastore</artifactId>
        </dependency>

        <!--Standard dep-->

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-api-1.0-sdk</artifactId>
            <version>${appengine.target.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.api-client</groupId>
            <artifactId>google-api-client-appengine</artifactId>
            <version>1.29.2</version>
        </dependency>

        <!--Provided-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <!--Test related-->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

org.springframework.boot
(避免启动期间出现堆栈溢出错误)

唯一的区别是,如果排除jul-to-slf4j,我将不会在控制台中看到任何日志


还有谁在logback/spring boot方面的专家能为我指出正确的方向吗

将logback.xml文件添加到项目的resources文件夹中。Spring boot将在启动时加载此文件,它将覆盖与Spring boot捆绑的默认logback配置

在logback.xml中,您可以定义自己的日志模式并删除不必要的数据

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="info">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>
用于文件日志记录

logging.pattern.console=%-5level %logger{36} - %msg%n
logging.pattern.file=%-5level %logger{36} - %msg%n
您可以在此处找到关于日志模式各部分含义的解释:

将logback.xml文件添加到项目的资源文件夹中。Spring boot将在启动时加载此文件,它将覆盖与Spring boot捆绑的默认logback配置

在logback.xml中,您可以定义自己的日志模式并删除不必要的数据

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="info">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>
用于文件日志记录

logging.pattern.console=%-5level %logger{36} - %msg%n
logging.pattern.file=%-5level %logger{36} - %msg%n
您可以在此处找到关于日志模式各部分含义的解释:

最后,我没有找到通过spring boot的app engine standard中的控制台打印机显示日志的正确方法。然而,通过使用stackdriver api,日志确实更漂亮

我所做的包括:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter-logging</artifactId>
        </dependency>

org.springframework.cloud
spring cloud gcp启动器日志记录
在logback-spring.xml中


但是,主请求日志级别不显示最高日志级别(但显示“任何日志值”),这使得过滤更加困难。
另一方面,错误报告工作正常,因为内部日志设置了正确的级别。

最后,我没有找到通过spring boot的app engine standard中的控制台打印机显示日志的正确方法。然而,通过使用stackdriver api,日志确实更漂亮

我所做的包括:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter-logging</artifactId>
        </dependency>

org.springframework.cloud
spring cloud gcp启动器日志记录
在logback-spring.xml中


但是,主请求日志级别不显示最高日志级别(但显示“任何日志值”),这使得过滤更加困难。
另一方面,错误报告是有效的,因为内部日志设置了正确的级别。

经过一些测试后,我认为问题不在于回写,可能是因为它在回写之前改变了我的日志。当我在local on remote中运行它时,我看到日志按照你的建议发生了变化,但在remote on GCP日志中,我总是在日志之前有一些无用的信息,比如:“[h~projectx dev/1-0-0.419452159733438541]”:“对不起,伙计,我没有任何应用引擎的经验,因此无法在那里提供任何帮助。经过一些测试,我认为问题不在于logback,也许在那之前它改变了我的日志。当我在local on remote中运行它时,我看到日志按照你的建议发生了变化,但在remote on GCP日志中,我总是在日志之前有一些无用的信息,比如:“[h~projectx dev/1-0-0.419452159733438541]:”抱歉,我没有任何应用程序引擎的经验,因此无法在那里提供任何帮助。