杭州网站建设是什么,asp.net网站本机访问慢,常用h5的制作工具,济南网页制作设计一、前言
Java日志组件介绍之一 主要介绍了JDK内置日志和Apache的common-logging通用日志接口#xff0c;今天这篇我们继续了解Java其它一些日志组件。
二、slf4j slf4j即Simple Logging Facade for JAVA #xff0c;简单日志门面#xff0c;类似common-logging#xff0…一、前言
Java日志组件介绍之一 主要介绍了JDK内置日志和Apache的common-logging通用日志接口今天这篇我们继续了解Java其它一些日志组件。
二、slf4j slf4j即Simple Logging Facade for JAVA 简单日志门面类似common-logging是对不同日志实现的封装。 slf4j-simple、logback都是slf4j的具体实现log4j并不直接实现slf4j但是有专门的一层桥接slf4j-log4j12来实现slf4j。 slf4j-simple、logback、slf4j-log4j12都有一个StaticLoggerBinder类实现了slf4j的LoggerFactoryBinder接口进行绑定。
1、依赖配置
pom.xml 其中slf4j-api是必须要添加而slf4j-simple、logback-classic、slf4j-log4j12这三个包根据你的需要添加一个依赖即可如果一起添加会有如下的警告信息但系统会选择其中一个日志实现类。SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory] 2、日志实现类配置文件
如果要使用log4j,需要添加log4j.properties配置以下是一个log4j简单控制台输出日志配置 3、代码 注使用的是slf4j的API。
4、使用的是哪一个具体实现关键源代码分析
通过LoggerFactory跟入代码 初始化方法 查找可能绑定的类文件 STATIC_LOGGER_BINDER_PATH org/slf4j/impl/StaticLoggerBinder.class
就是去加载org/slf4j/impl/StaticLoggerBinder.class这个类每个slf4j实现都会有这一个类。
三、log4j
Log4j是Apache的一个开源项目通过使用Log4j我们可以控制日志信息输送的目的地是控制台或文件等,我们也可以控制每一条日志的输出格式。
Log4j组成 loggers控制日志输出级别以及日志是否要输出 日志级别FATAL-ERROR-WARN-INFO-DEBUG ALL:打开所有日志记录、OFF关闭所有日志。 Appenders设置日志输出到控制台、文件等。 ConsoleAppender控制台 FileAppender文件 DailyRollingFileAppender每天生成一个新文件 RollingFileAppender输出到文件指定文件大小当超过文件大小时会产生一个新文件并把原来日志文件更名。 JDBCAppender将日志信息保存在数据库中。 Layout 控制日志信息的输出格式 HTMLLayout输出HTML格式 SimpleLayout输出简单格式 PatternLayout可以自定义格式输出日志。
1、依赖 2、代码 3、配置log4j.properties 4、日志输出格式定义
注参考PatternLayout这个类的注解。
四、logback
logback是log4j作者写的另外一个日志组件相比log4j有更好的性能.
logback三个组件 logback-core提供了LogBack的核心功能是另外两个组件的基础。 logback-classic:实现了Slf4j的API所以当想配合Slf4j使用时需要引入logback-classic。 logback-access:为了集成Servlet环境而准备的可提供HTTP-access的日志接口。
logback一般都是与slf4j整合使用logback包中也有一个StaticLoggerBinder来实现与slf4j的绑定。
1、依赖配置 2、logback.xml
如果项目中不配置logback.xml则使用默认配置只会输出日志到控制台。
3、代码 注调用slf4j的接口进行日志打印。
4、Springboot配置logback
SpringBoot默认的日志组件就是logback,只要引入spring-boot-start就会把logback依赖引入如果没logback配置文件则会直接使用默认的org.springframework.boot.logging.logback.base.xml默认日志输出级别为INFO
注Spring引入spring-boot-start还会引入slf4j、log4j(这个不知道为什么加载进来). 5、异步日志配置
异步日志在输出的时候不会直接输出日志到磁盘而是将日志存进一个队列里另外会起一个线程消费队列里的日志将其写入磁盘。 AsyncAppenderBase原理
1、将日志数据放到队列中 2、从队列中取出数据写到磁盘 注我们项目中其实一直没有配置异步日志。
五、Log4j2
这就是前几天爆出安全漏洞的日志组件下一篇具体分析。