Log4j2 - 设置包的日志级别,然后设置子包

时间:2017-12-20 22:12:48

标签: java apache logging log4j2

所以,我想在DEBUG拥有我自己的代码,但是Apache的代码在WARN。除了产生太多警告的Kafka之外,我试过这个:

 log4j.rootLogger=DEBUG,console,file
log4j.logger.org.apache=WARN
log4j.logger.org.apache.kafka.common.config=ERROR

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %p (%C) [%t] - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/var/log/my-app/application.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %p (%C) [%t] - %m%n

log4j.logger.org.apache=WARN行有效。但log4j.logger.org.apache.kafka.common.config=ERROR似乎没有做任何事情,因为我仍然有很多日志声明,如

  

2017-12-20T14:31:42.439 WARN(org.apache.kafka.common.config.AbstractConfig)[main] - 配置batch.size = 16384已提供,但不知道配置。

(配置警告是由于依赖,而不是我的代码,所以清理配置文件是我无法控制的。)

我尝试撤消订单:     log4j.logger.org.apache.kafka.common.config = ERROR     log4j.logger.org.apache = WARN 但那没有效果。

谢谢!

2 个答案:

答案 0 :(得分:1)

我也遇到了这个问题...问题是什么 org.apache.kafka.common.config.AbstractConfig 是抽象类!所以真的从来没有日志实例。并且您需要按具体祖先配置日志记录。 例如(应该是最多的,但可能会在功能版本中添加其他一些):

log4j.logger.io.confluent.ksql.util.KsqlConfig=ERROR
log4j.logger.io.confluent.connect.avro.AvroConverterConfig=ERROR
log4j.logger.io.confluent.ksql.rest.server.KsqlRestConfig=ERROR
log4j.logger.org.apache.kafka.connect.json.JsonConverterConfig=ERROR
log4j.logger.org.apache.kafka.clients.admin.AdminClientConfig=ERROR
log4j.logger.io.confluent.ksql.logging.processing.ProcessingLogConfig=ERROR
log4j.logger.org.apache.kafka.clients.consumer.ConsumerConfig=ERROR
log4j.logger.org.apache.kafka.connect.runtime.distributed.DistributedConfig=ERROR
log4j.logger.org.apache.kafka.clients.producer.ProducerConfig=ERROR
log4j.logger.io.confluent.connect.avro.AvroDataConfig=ERROR
log4j.logger.io.confluent.kafka.serializers.KafkaAvroSerializerConfig=ERROR
log4j.logger.io.confluent.kafka.serializers.KafkaAvroDeserializerConfig=ERROR
log4j.logger.org.apache.kafka.common.config.AbstractConfig=ERROR
log4j.logger.org.apache.kafka.connect.runtime.ConnectorConfig=ERROR
log4j.logger.org.apache.kafka.connect.runtime.ConnectorConfig$EnrichedConnectorConfig=ERROR
log4j.logger.org.apache.kafka.connect.runtime.TaskConfig=ERROR
log4j.logger.org.apache.kafka.connect.storage.StringConverterConfig=ERROR
log4j.logger.org.apache.kafka.connect.runtime.SourceConnectorConfig=ERROR
log4j.logger.io.confluent.connect.jdbc.source.JdbcSourceConnectorConfig=ERROR
log4j.logger.org.apache.kafka.streams.StreamsConfig=ERROR
log4j.logger.io.confluent.connect.jdbc.source.JdbcSourceTaskConfig=ERROR

答案 1 :(得分:0)

您似乎缺少记录器上的additivity配置。

这将阻止传入的记录器传播到其父记录器。

log4j.additivity.org.apache.kafka.common.config=false

可以找到更多信息herehere