• 关于日志log


      刚开始学习java时,我们习惯使用System.out.println()来打印日志,这样简单有效。但是在真正写业务代码时发现,没有standout,只有文件,需要把日志写入日志文件。在使用日志框架时,我们大部分使用了info和error级别。在使用比人提供的库时,有大量无效日志输出,干扰了我们的正常业务。于是我们需要能够将一些类和包的日志关闭,或者降低其级别。这里就体现了一个日志框架的优秀与否,能否很方便的关掉日志?

      有许多日志框架,比如sl4j,log4j,common-log等,但是他们的作用是不同的。日志框架的使用,体现了设计模式中的门面模式。sl4j只提供了接口定义,而log4j是实现。那么这两个包是如何协同工作的呢?这就是sl4j-log4j的作用。log4j设计时没有考虑到sl4j,同理sl4j的设计也没有考虑到log4j,于是就需要这个jar包将两个包沟通起来,就像mybatis提供的mybaits-spring依赖包一样。

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
    // 这个提示就是说明没有配置log的具体实现。

      那么slf4j是怎么找到具体实现框架的呢?答案就是org.slf4j.impl.StaticLoggerBinder,具体实现类都实现了这个类,就相当于slf4j和其他实现库的约定,slf4j会查找这个类。

    log4j:WARN No appenders could be found for logger (org.slf4j.LoggerFactory).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    这个报错是说log4j没有找到相应的配置文件

      然后可以参考log4j官网的配置,进行相关的配置

    参考博文:https://www.cnblogs.com/chenhongliang/p/5312517.html

    log4j和sl4j的作用:https://www.cnblogs.com/xrq730/p/8619156.html

    log4j的配置:https://sixdegree.github.io/2013/05/02/Java-Log4j.html

    这篇很详细了

  • 相关阅读:
    Http的请求协议请求行介绍
    Http概述
    服务器返回的14种常见HTTP状态码
    Tomcat发布项目
    Tomca的启动与关闭
    TomCat概述
    PrepareStatement
    JDBC的工具类
    JDBC的异常处理方式
    ResultSet
  • 原文地址:https://www.cnblogs.com/Robin008/p/12968961.html
Copyright © 2020-2023  润新知