zoukankan      html  css  js  c++  java
  • kafka客户端打印日志

    kafka 0.10.0 java客户端使用slf4j作为日志门面,需要我们加入具体的日志实现依赖才能打印日志,日志框架:http://www.cnblogs.com/set-cookie/p/8836496.html

    1 客户端依赖jar包

    使用命令

    mvn dependency:tree -Dverbose

    查看客户端依赖的那些包,可以看到java客户端只依赖了slf4j,并没有具体的日志实现:
    kafka dependency

    运行客户端,会打印slf4j的warn提示
    sl4j warn

    2 使用log4j2

    加入依赖

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
    
            <!-- kafka客户端-->
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>0.10.0.0</version>
            </dependency>
    
            <!--log4j2到slf4j桥梁-->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>2.9.1</version>
            </dependency>
    
            <!--log4j2 begin-->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>2.11.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>2.11.0</version>
            </dependency>
            <!--log4j2 end-->
    

    如果不创建log4j2.xml配置文件的话,log4j2会使用默认的配置,输出级别是ERROR,如下:

     <?xml version="1.0" encoding="UTF-8"?>
      <Configuration status="WARN"> <!--status表示log4j2自身日志的级别-->
        <Appenders>
          <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
          </Console>
        </Appenders>
        <Loggers>
          <Root level="error">
                 <AppenderRef ref="Console"/>
           </Root>
       </Loggers>
     </Configuration>
    

    为了灵活性,我们可以在resources目录下创建log4j2.xml来自定义log4j2的打印,其实仅仅是将日志级别从error修改为了trace

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            </Console>
        </Appenders>
        <Loggers>
            <Root level="trace"> <!--error改成trace,便于debug-->
                <AppenderRef ref="Console"/>
            </Root>
        </Loggers>
    </Configuration>
    

    再次运行, 已经打印了trace日志
    kafka trace

  • 相关阅读:
    java 深克隆(深拷贝)与浅克隆(拷贝)详解
    设计模式之单例模式
    设计模式之工厂模式
    批量下载google 字体小工具
    LBPL--基于Asp.net、 quartz.net 快速开发定时服务的插件化项目
    测试
    WCF 生产json对外的接口
    四舍五入小算法 (以前写的,采用拆分)
    自己动手写控件(模仿mvc htmlhelper的类)
    步骤详解安装Apache web服务器
  • 原文地址:https://www.cnblogs.com/set-cookie/p/8836715.html
Copyright © 2011-2022 走看看