• 项目1-日志框架


    日志框架

    slf4j+logback

    原理

    https://developer.51cto.com/art/201904/594968.htm

    实现方式

    将系统中其他日志框架排除

    用中间包替换原来的日志框架

         <dependency>
    
           <groupId>org.slf4j</groupId>
    
           <artifactId>jcl-over-slf4j</artifactId><!-- 替换commons-logging-->
    
           <version>1.7.25</version>
    
         </dependency> 
    
         <dependency>
    
           <groupId>org.slf4j</groupId>
    
           <artifactId>jul-to-slf4j</artifactId><!-- 替换java.util.logging-->
    
           <version>1.7.25</version>
    
         </dependency>
    

    slf4j的实现

         <dependency>
    
           <groupId>ch.qos.logback</groupId>
    
           <artifactId>logback-classic</artifactId><!-- 间接依赖logback-core--><!-- 优秀的日志实现-->
    
         </dependency>     
    
         <!-- slf4j(门面): Simple Logging Facade for Java :简单日志门面(接口)(类似JDBC); 
    
              log4j:日志实现(类似数据库驱动); 
    
              log4j2(实现), logback(实现), 
    
              后来我们用slf4j+logback(最稳定的方案); -->
    
         <dependency>
    
           <groupId>org.slf4j</groupId>
    
           <artifactId>slf4j-api</artifactId><!-- 抽象层,接口-->
    
         </dependency>
    

    测试代码

        import org.slf4j.Logger;
        import org.slf4j.LoggerFactory; 
    
        public class HelloWorld {
    
          public static void main(String[] args) {
    
               Logger logger = LoggerFactory.getLogger(TestLog.class);
    
               logger.debug("debug..."); //用于调试程序
    
               logger.info("info...");//用于请求处理提示消息
    
               logger.warn("warn...");//用于警告处理提示消息
    
               logger.error("error...");//用于异常处理提示消息
    
               logger.error("==>>"+logger.getClass());
    
               //class ch.qos.logback.classic.Logger
    
        } 
    
        } 
    

    配置文件logback.xml

    每一个日志的实现框架都有自己的配置文件。使用slf4j以后,配置文件还是做成日志实现框架自己本身的配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    
    <configuration debug="true">
    
        <!-- 指定日志输出的地方-->
    
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    
            <encoder>
    
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{360} - 
    %msg%n</pattern>
    
            </encoder>
    
        </appender> 
    
        <!-- 日志:从低到高;只会打印指定级别以后的; additivity表示是否将日志信息反馈给root
    
         DEBUG==》INFO===》WARN===》ERROR
    
         <logger name="com.atguigu.atcrowdfunding.mapper" level="debug" additivity="false">  
    
             <appender-ref ref="STDOUT"/>  
    
         </logger>
    
          -->
    
         <root level="info">
    
             <appender-ref ref="STDOUT" />
    
         </root>
    
    </configuration> 
    

  • 相关阅读:
    kafka关于修改副本数和分区的数的案例实战(也可用作leader节点均衡案例)
    kafka集群监控之kafka-manager部署(kafka-manager的进程为:ProdServerStart)
    flume配置kafka channle的实战案例
    HTML&CSS基础-表格简介
    HTML&CSS基础-雪碧图的制作和使用
    Hadoop生态圈-使用Ganglia监控flume中间件
    JavaScript基础知识-条件运算符(三元运算符)
    初识Apache Kafka 核心概念
    Hadoop生态圈-CentOs7.5单机部署ClickHouse
    安装Cloudera manager agent步骤详解
  • 原文地址:https://www.cnblogs.com/suit000001/p/13828837.html
Copyright © 2020-2023  润新知