我在AppEngine标准环境Java 8中使用Google Cloud Endpoints。我正在使用Maven构建。
我正在尝试使用slf4j进行日志记录,但在任何级别都没有记录任何内容(日志不会出现在Stackdriver Logging中)。我在pom.xml
中包含了slf4j和slf4j-jdk14绑定。
使用java.util.logging
进行日志记录按预期工作,并根据我在logging.properties
中设置的日志级别在Stackdriver Logging中显示日志。但我更喜欢使用slf4j接口。
有什么建议吗?
答案 0 :(得分:0)
结果是端点框架取决于slf4j-nop.jar
。
通过运行mvn dependency:tree
可以看出这一点。然后,您可以在/WEB-INF/lib/
中看到nop jar。
为避免在战争中包含jar,请使用maven-war-plugin
的包装排除选项,例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
<packagingExcludes>
WEB-INF/lib/slf4j-nop-*.jar
</packagingExcludes>
</configuration>
</plugin>
还要确保包含对要使用的绑定的依赖关系,例如
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.25</version>
</dependency>
答案 1 :(得分:0)
我已经为Google Endpoints团队开了一张此门票,但是目前正在讨论是否以及如何解决这个问题。
https://github.com/cloudendpoints/endpoints-java/issues/116
与此同时,你也可以像这样排除slf4j-nop:
<dependency>
<groupId>com.google.endpoints</groupId>
<artifactId>endpoints-framework</artifactId>
<version>${endpoints-framework.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
</exclusion>
</exclusions>
</dependency>