[英]slf4j with jdk14 is logging INFO messages to stderr
I am trying to get a grip of slf4j with jdk14.我正在尝试使用 jdk14 来掌握 slf4j。 Weirdly, some INFO level messages are appearing in stderr.
奇怪的是,一些 INFO 级别的消息出现在 stderr 中。
I am executing the jar with the following command我正在使用以下命令执行 jar
java -Djava.util.logging.config.file=./src/main/resources/logging.properties -jar ./target/adwordsConnectorV2-account.jar
I am sure that they are INFO level, because when I set the property java.util.logging.ConsoleHandler.level
to ALL
, the messages show, but when it is set to SEVERE
, they don't show.我确信它们是 INFO 级别,因为当我将属性
java.util.logging.ConsoleHandler.level
设置为ALL
时,消息会显示,但是当它设置为SEVERE
时,它们不会显示。
Please can someone tell me why they might be logging to stderr instead of stdout?请有人告诉我为什么他们可能会登录到 stderr 而不是 stdout?
Thanks谢谢
Ben本
com.google.api-ads com.google.api-ads
ads-lib = 1.30.0
adwords-axis = 1.30.0
org.slf4j org.slf4j
slf4j-api = 1.7.7
slf4j-jdk14 = 1.7.7
Here is what is logged to stderr:这是记录到 stderr 的内容:
Jul 18, 2014 3:42:11 AM com.google.api.ads.adwords.lib.utils.logging.ReportServiceLogger log
INFO: Request made: POST https://adwords.google.com//api/adwords/reportdownload/v201406
Jul 18, 2014 3:42:11 AM com.google.api.ads.adwords.lib.utils.logging.ReportServiceLogger log
INFO: accept-encoding: [gzip]
authorization: REDACTED
user-agent: [fetch-report (AwApi-Java, Common-Java/1.30.0, Java/1.6.0_31, maven)]
developertoken: REDACTED
clientcustomerid: XXXX
Parameters:
__rdxml: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><reportDefinition xmlns:ns2="https://adwords.google.com/api/adwords/cm/v201406"><ns2:selector><ns2:fields>Date</ns2:fields><ns2:fields>AccountDescriptiveName</ns2:fields><ns2:fields>ExternalCustomerId</ns2:fields><ns2:fields>AccountCurrencyCode</ns2:fields><ns2:fields>Device</ns2:fields><ns2:fields>AverageCpc</ns2:fields><ns2:fields>AverageCpm</ns2:fields><ns2:fields>AveragePosition</ns2:fields><ns2:fields>Impressions</ns2:fields><ns2:fields>Clicks</ns2:fields><ns2:fields>Cost</ns2:fields><ns2:fields>Ctr</ns2:fields><ns2:fields>ConversionsManyPerClick</ns2:fields><ns2:dateRange><ns2:min>20140101</ns2:min><ns2:max>20141231</ns2:max></ns2:dateRange></ns2:selector><ns2:reportName>Account performance report</ns2:reportName><ns2:reportType>ACCOUNT_PERFORMANCE_REPORT</ns2:reportType><ns2:dateRangeType>CUSTOM_DATE</ns2:dateRangeType><ns2:downloadFormat>CSV</ns2:downloadFormat><ns2:includeZeroImpressions>false</ns
2:includeZeroImpressions></reportDefinition>
Jul 18, 2014 3:42:11 AM com.google.api.ads.adwords.lib.utils.logging.ReportServiceLogger log
INFO: Response received with status code 200 and message: OK
EDIT: Here is what is in logging.properties:编辑:这是 logging.properties 中的内容:
# from http://stackoverflow.com/questions/5416769/how-to-configure-the-jdk14-loggings-pattern
handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format = [%1$tc] %4$s: %2$s - %5$s %6$s%n
I was seeing messages on stderr because that's the destination used by ConsoleHandler - see the ConsoleHandler javadoc here我在 stderr 上看到了消息,因为这是 ConsoleHandler 使用的目的地 - 请参阅 ConsoleHandler javadoc here
The following post shows how to redirect the output, but that is kind of avoiding the problem How do I change java logging console output from std err to std out?以下帖子显示了如何重定向输出,但这是一种避免问题如何将 java 日志控制台输出从 std err 更改为 std out?
i have decided to switch to log4j instead as recommended by the google adwords team我决定按照 google adwords 团队的建议改用 log4j
I started to have the same issue after adding a new dependency (no code changes, no changes to the property file).添加新依赖项后,我开始遇到同样的问题(没有代码更改,属性文件没有更改)。
This new dependency was transitively pulling in sfl4j
, and adding an exclusion in the pom file fixed the issue, as follows:这个新的依赖项会传递到
sfl4j
中,并在 pom 文件中添加排除项修复了问题,如下所示:
<dependency>
<groupId>org.apache.datasketches</groupId>
<artifactId>datasketches-hive</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.