Java日志

日志框架:java.util.logging,Apache的log4j、logback、commons logging,Slf4j

SLF4J:即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。   在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。
   官方网站:http://www.slf4j.org/

log4j:Log For Java,Apache的一个开源项目,可以灵活地记录日志信息,我们可以通过Log4j的配置文件灵活配置日志的记录格式、记录级别、输出格式,而不需要修改已有的日志记录代码。
    官方网站:http://logging.apache.org/log4j/1.2/
最详细的Log4J使用教程:https://blog.csdn.net/u013870094/article/details/79518028
Log4j输出格式控制--log4j的PatternLayout参数含义以及详细配置:https://blog.csdn.net/reserved_person/article/details/52849505
日志配置文件:log4j.properties位置在src/下,或者/src/main/resources下,可自动识别,当然,也可以    
自定义log4j.properties的加载位置:https://blog.csdn.net/wzl1217333452/article/details/83587594

Slf4j偏重日志规范,需结合日志系统,如log4j、logback等。
slf4j的使用步骤:

SLF4J和log4j的使用:https://blog.csdn.net/yinzhaofa/article/details/79067506
https://www.cnblogs.com/haoqipeng/p/5300376.html

阿里Java开发手册-日志规约
1.【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架
SLF4J 中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(Abc.class);

为什么使用 SLF4J 而不是 Log4J 来做 Java 日志
1)在你的开源库或者私有库中使用SLF4J,可以使它独立于任何的日志实现,这就意味着不需要管理多个库和多个日志文件。你的客户端将会体会到这一点。
2)SLF4J提供了占位日志记录,通过移除对isDebugEnabled(), isInfoEnabled()等等的检查提高了代码的可读性。
3)通过使用日志记录方法,直到你使用到的时候,才会去构造日志信息(字符串),这就同时提高了内存和CPU的使用率。
4)做一个侧面的说明,越少的临时字符串,垃圾回收器就意味着越少的工作,这就意味着为你的应用程序提供更好的吞吐量和性能。
https://www.oschina.net/translate/why-use-sl4j-over-log4j-for-logging

log4j定义了8个级别的log(除去OFF和ALL 可以说分为6个级别),
 优先级从高到低依次为:OFF FATAL ERROR WARN INFO DEBUG TRACE ALL
 
 ALL 最低等级的 用于打开所有日志记录
 TRACE 很低的日志级别 一般不会使用
 DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的 主要用于开发过程中打印一些运行信息
 INFO 消息在粗粒度级别上突出强调应用程序的运行过程
 打印一些你感兴趣的或者重要的信息 这个可以用于生产环境中输出程序运行的一些重要信息
 但是不能滥用 避免打印过多的日志
 WARN 表明会出现潜在错误的情形 有些信息不是错误信息 但是也要给程序员的一些提示
 ERROR 指出虽然发生错误事件 但仍然不影响系统的继续运行
 打印错误和异常信息 如果不想输出太多的日志 可以使用这个级别
 FATAL 指出每个严重的错误事件将会导致应用程序的退出
 这个级别比较高了 重大错误 这种级别你可以直接停止程序了
 OFF 最高等级的,用于关闭所有日志记录
 
 如果将log level设置在某一个级别上 那么比此级别优先级高的log都能打印出来
 例如 如果设置优先级为WARN 那么OFF FATAL ERROR WARN 4个级别的log能正常输出,
 而INFO DEBUG TRACE ALL级别的log则会被忽略。

log4j使用:https://blog.csdn.net/haoranhaoshi/article/details/93654429

log4j作者设计了又一开源日志logback,然后又吸收logback优点重构了log4j,设计了log4j2。

logback介绍:https://www.cnblogs.com/jackiega/p/6768434.html

log4j和log4j2的区别:https://www.cnblogs.com/WangBoBlog/p/7841217.html

log4j配合slf4j使用:https://blog.csdn.net/u014532217/article/details/78238003

你可能感兴趣的:(#,日志)