log4j2配置输出日志到Kafka

本文详细介绍了如何使用Java的Apache Kafka客户端和Log4j2框架进行日志配置,包括配置文件的两种形式:yml风格和xml风格。重点展示了如何将日志输出到控制台和Kafka主题,以及如何为特定包设置不同的日志级别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,需要引入依赖包:

		<dependency> 
			<groupId>org.apache.kafka</groupId>
			<artifactId>kafka-clients</artifactId>
			<version>0.9.0.1</version>
		</dependency>

如果配置文件是yml格式的,还需要这个依赖:

		<dependency>	<!-- 加上这个才能辨认到log4j2.yml文件 -->
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-yaml</artifactId>
		</dependency>

yml格式的配置方法(文件名:log4j2.yml):

Configuration:
  status: warn

  Appenders:
    Console:  #输出到控制台
      name: CONSOLE
      target: SYSTEM_OUT
      ThresholdFilter:
        level: trace
        onMatch: ACCEPT
        onMismatch: DENY
      PatternLayout:
        pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"
    Kafka: #输出到Kafka
      name: KAFKA
      topic:  test
      ThresholdFilter:
        level: error
        onMatch: ACCEPT
        onMismatch: DENY
      PatternLayout:
        pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n"
      Property:
        - name: bootstrap.servers
          value: 192.168.0.9:9092

  Loggers:
    Root:
      level: info
      AppenderRef:
        - ref: CONSOLE
        - ref: KAFKA
    Logger: # 为com.xjj包配置特殊的Log级别,方便调试
      - name: com.xjj
        additivity: false
        level: trace
        AppenderRef:
          - ref: CONSOLE
          - ref: KAFKA
      - name: org.apache.kafka #听说这样可以避免递归调用
        level: INFO

xml格式的配置方法(文件名:log4j2.xml):

<Configuration status="warn" monitorInterval="30" strict="true"	schema="Log4J-V2.2.xsd">
	<Appenders>
		<!-- 输出到控制台 -->
		<Console name="Console" target="SYSTEM_OUT">
			<!-- 需要记录的级别 -->
			<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n" />
		</Console>
		
		<!-- 输出错误日志到Kafka -->
		<Kafka name="KAFKA" topic="test">
			<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%F:%L) - %m%n" />
			<Property name="bootstrap.servers">192.168.0.9:9092</Property>
		</Kafka>
	</Appenders>

	<Loggers>
		<Root level="info"> <!-- 全局配置 -->
			<AppenderRef ref="Console" />
			<AppenderRef ref="KAFKA"/>
		</Root>

		<Logger name="com.xjj" level="trace" additivity="false">
			<AppenderRef ref="Console" />
			<AppenderRef ref="KAFKA"/>
		</Logger>
		
		<Logger name="org.apache.kafka" level="INFO" /> <!-- avoid recursive logging -->
	</Loggers>
</Configuration>

大功告成。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值