我在AppEngine标准环境Java8中使用Google Cloud Endpoint,我使用Maven.
我正在尝试使用slf4j进行日志记录,但是在任何级别都没有日志记录(日志不会出现在Stackdriver日志记录中)。我已经在我的pom.xml中包含了slf4j和slf4j-jdk14绑定。
使用java.util.logging的日志功能与预期一样,日志会根据我在logging.properties中设置的日志级别显示在Stackdriver日志中。但我更喜欢使用slf4j接口。
有什么建议吗?
发布于 2017-09-20 19:42:08
事实证明,端点框架依赖于slf4j-nop.jar。
这可以通过运行mvn dependency:tree来查看。然后,您可以在/WEB-INF/lib/中看到nop jar。
要避免在war中包含jar,请使用maven-war-plugin的packaging选项,例如:
<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>发布于 2018-01-11 03:30:12
我已经向Google Endpoint团队开了一张罚单,但关于是否以及如何解决这个问题的讨论正在进行中。
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>https://stackoverflow.com/questions/46307589
复制相似问题