1. 程式人生 > >Kafka Connect 日誌配置

Kafka Connect 日誌配置

筆者之前啟動kafka connect程序後,發現過一段時間,日誌太大。

啟動kafka connect的命令如下:

cd  /home/tidb/confluent-4.1.1
./bin/connect-distributed -daemon ./etc/schema-registry/connect-avro-distributed.properties  

但是會在如下目錄生成一個connectDistributed.out檔案,並且隨著時間流逝,會變得很大。

[email protected]:/home/tidb/confluent-4.1.1/logs# ls -lh
total 1.3M
-rw-r--r-- 1 root root 280M Sep 21 15:15 connectDistributed.out
-rw-r--r-- 1 root root 363K Sep 21 15:15 schema-registry.log
-rw-r--r-- 1 root root 318K Sep 21 15:15 schemaRegistry.out

因此筆者希望能夠配置成Daily Rolling的形式,每天生成一個輸出檔案。

通過如下命令,檢視到了kafka connect的配置檔案路徑:

[email protected]:/home/tidb/confluent-4.1.1/bin# ./connect-distributed -h
[2018-09-21 15:14:51,314] INFO Kafka Connect distributed worker initializing ... (org.apache.kafka.connect.cli.ConnectDistributed:63)
[2018-09-21 15:14:51,330] INFO WorkerInfo values: 
	jvm.args = -Xms256M, -Xmx2G, -XX:+UseG1GC, -XX:MaxGCPauseMillis=20, -XX:InitiatingHeapOccupancyPercent=35, -XX:+ExplicitGCInvokesConcurrent, -Djava.awt.headless=true, -Dcom.sun.management.jmxremote, -Dcom.sun.management.jmxremote.authenticate=false, -Dcom.sun.management.jmxremote.ssl=false, -Dkafka.logs.dir=./../logs, -Dlog4j.configuration=file:./../etc/kafka/connect-log4j.properties
	jvm.spec = Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_171, 25.171-b11

從上面的輸出-Dkafka.logs.dir=./../logs可以看出生成的日誌檔案應該在bin目錄同級的logs目錄,事實上確實是這樣的。從Dlog4j.configuration=file:./../etc/kafka/connect-log4j.properties可以看出log4j的配置檔案應該在bin目錄同級的etc目錄下的子目錄kafka中,配置檔名字為connect-log4j.properties

connect-log4j.properties配置檔案中加入如下內容:

log4j.rootLogger=INFO, kafkaConnectAppender

log4j.appender.kafkaConnectAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaConnectAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.kafkaConnectAppender.File=/home/tidb/confluent-4.1.1/logs/kafka-connect.log
log4j.appender.kafkaConnectAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaConnectAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.logger.org.apache.zookeeper=ERROR
log4j.logger.org.I0Itec.zkclient=ERROR
log4j.logger.org.reflections=ERROR

然後重啟kafka connect(kafka connect似乎沒有重啟命令,筆者通過kill connectDistributed程序,然後再啟動的),可以看到在/home/tidb/confluent-4.1.1/logs目錄下面確實有kafka-connect.log檔案生成,等跨天的時候應該就有按天命名的日誌檔案了。