![Kafka ライブラリが Keycloak モジュールとして使用されている場合に Kafka DEBUG ログを停止する方法](https://rvso.com/image/1598570/Kafka%20%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%8C%20Keycloak%20%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E7%94%A8%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AB%20Kafka%20DEBUG%20%E3%83%AD%E3%82%B0%E3%82%92%E5%81%9C%E6%AD%A2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png)
keycloak モジュール (kafka プロデューサーを含む) が「keycloak-4.8.1.Final」サーバーにデプロイされます。
私の問題:
私も使っていました情報ログレベル、デバッグメッセージは Kafka ライブラリからログに記録されます。そのため、Keyclaok ログ ファイルからの乱雑な Kafka デバッグ ログを停止したいと考えています。誰か、この問題を解決するために私をサポートしてくれませんか。
Keycloakで使用されているログ記録メカニズムに矛盾があるのではないかと思います(jboss ロギング) & カフカ (slf4j) それ自体です。
サンプルログ:
10:10:40,642 INFO [stdout] (kafka-producer-network-thread | InternalUserProvisioningProducer) 47473973 [kafka-producer-network-thread | InternalUserProvisioningProducer] DEBUG org.apache.kafka.clients.NetworkClient - [Producer clientId=InternalUserProvisioningProducer] Sending metadata request (type=MetadataRequest, topics=) to node localhost:9092 (id: 0 rack: null)
10:10:40,644 INFO [stdout] (kafka-producer-network-thread | InternalUserProvisioningProducer) 47473975 [kafka-producer-network-thread | InternalUserProvisioningProducer] DEBUG org.apache.kafka.clients.Metadata - Updated cluster metadata version 28 to Cluster(id = 5N8ICZgiS-GewacYHMDtlg, nodes = [localhost:9092 (id: 0 rack: null)], partitions = [])
Kafka lib(inxml ファイルの):
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.12</artifactId>
<version>1.0.1</version>
</dependency>
Keycloakモジュール設定(モジュール.xml):
<module xmlns="urn:jboss:module:1.5" name="com.my.core.internal-user-authenticator-module">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="internal-user-authenticator-module-0.0.1-SNAPSHOT.jar"/>
</resources>
<dependencies>
<module name="org.keycloak.keycloak-core"/>
<module name="org.keycloak.keycloak-common"/>
<module name="org.keycloak.keycloak-services"/>
<module name="org.keycloak.keycloak-server-spi"/>
<module name="org.keycloak.keycloak-server-spi-private"/>
<module name="javax.api"/>
<module name="javax.ws.rs.api"/>
<module name="javax.persistence.api"/>
<module name="org.jboss.resteasy.resteasy-jaxrs"/>
<module name="com.sun.xml.bind"/>
<module name="javax.xml.bind.api"/>
<module name="org.jboss.resteasy.resteasy-jaxb-provider"/>
<module name="org.wildfly.security.elytron"/>
<module name="org.bouncycastle"/>
<module name="com.fasterxml.jackson.core.jackson-core" export="true"/>
<module name="com.fasterxml.jackson.core.jackson-databind" export="true"/>
</dependencies>
keycloak ログ設定 (スタンドアロン.xml):
<subsystem xmlns="urn:jboss:domain:logging:6.0">
<console-handler name="CONSOLE">
<level name="INFO"/>
<formatter>
<named-formatter name="COLOR-PATTERN"/>
</formatter>
</console-handler>
<periodic-rotating-file-handler name="FILE" autoflush="true">
<formatter>
<named-formatter name="PATTERN"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="com.arjuna">
<level name="WARN"/>
</logger>
<logger category="org.jboss.as.config">
<level name="DEBUG"/>
</logger>
<logger category="sun.rmi">
<level name="WARN"/>
</logger>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
<formatter name="PATTERN">
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
</formatter>
<formatter name="COLOR-PATTERN">
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
</formatter>
</subsystem>
ありがとう....
答え1
log4j.properties ファイルを Keycloak デプロイメントに追加すると、機能しました。
log4j.プロパティ:
log4j.rootLogger=情報
standalone.sh または standalone.conf:
-Dlog4j.configuration=ファイル:"$JBOSS_CONFIG_DIR"/log4j.properties