zoukankan      html  css  js  c++  java
  • slf4j日志门面担当

    一、简介

        slf4j主要是为了给Java日志访问提供一个标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由其他日志框架,例如log4j和logback等。当然slf4j自己也提供了功能较为简单的实现,但是一般很少用到。对于一般的Java项目而言,日志框架会选择slf4j-api作为门面,配上具体的实现框架(log4j、logback等),中间使用桥接器完成桥接。本文侧重分析slf4j,也会解释门面+桥接器+实现的原理。

    二、使用

       1.手动添加三个jar包:slf4j-api-1.8.0-alpha2.jar、log4j-1.2.17.jar、slf4j-log4j12-1.8.0-alpha2.jar

       2.配置log4j.properties配置文件,放在classpath下,log4j会自动加载,也可以改变目录后再代码中加载,具体内容如下:

    # rootLogger参数分别为:根Logger级别,输出器stdout,输出器log
    log4j.rootLogger = info,stdout,log
    
    # 输出信息到控制台
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern = %d [%-5p] %l %rms: %m%n
    
    # 输出DEBUG级别以上的日志到D://logs/debug.log
    log4j.appender.log = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.log.DatePattern = '.'yyyy-MM-dd
    log4j.appender.log.File = D://debug.log
    log4j.appender.log.Encoding = UTF-8
    #log4j.appender.log.Threshold = INFO
    log4j.appender.log.layout = org.apache.log4j.PatternLayout
    log4j.appender.log.layout.ConversionPattern = %d [%-5p] (%c.%t): %m%n

       3.测试代码如下:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    public class LoggerTest {
        private static final Logger logger = LoggerFactory.getLogger(LoggerTest.class);
    
        public static void main(String[] args) {
            logger.info("Current Time: {}", System.currentTimeMillis());
            logger.info("Current Time: " + System.currentTimeMillis());
            logger.info("Current Time: {}", System.currentTimeMillis());
            logger.trace("trace log");
            logger.warn("warn log");
            logger.debug("debug log");
            logger.info("info log");
            logger.error("error log");
        }
    }
    

     4.更换日志系统

        看到这里,你可能会有疑问:既然都用了log4j,为什么还要用SLF4J来写记录日志的代码呢,不是多此一举吗?

       答案是否定的。因为slf4j是一个门面,log4j是里子,一个slf4j可以搭配不同的里子以实现不同的效果。假设我们不再需要log4j,而是希望改为使用java自带logging记录日志,我们需要做的仅仅是将pom.xml的依赖项slf4j-log4j12改为slf4j-jdk14即可,无需对上述测试代码做任何修改。

     

  • 相关阅读:
    React antd的select框的onchange事件 只能点击一次 如果想选中的值 还可以被点击 就用onselect事件
    formatTime.js
    typeScript
    React react-router在url参数不同的情况下跳转页面不更新
    React 组件
    三、猜字符小游戏
    二、Java学习之方法
    Java学习之数组
    JavaWeb的学习--第五天 javascript03
    JavaWeb的学习--第四天 javascript02
  • 原文地址:https://www.cnblogs.com/xiaoao/p/9774644.html
Copyright © 2011-2022 走看看