一、简介
- 日志打印是java代码开发中不可缺少的重要一步。
- 日志可以排查问题,可以搜集数据
二、常用日志框架
比较常用的日志框架就是logback, 一些老项目会使用log4j,他们用的都是slf4j-api统一接口。
(1) 使用log4j
log4j使用: 1. slf4j-api-1.5.11.jar 2. slf4j-log4j12-1.5.11.jar 3. log4j-1.2.15.jar 4. log4j.properties
代码中
import org.slf4j.Logger; import org.slf4j.LoggerFactory; Logger logger = LoggerFactory.getLogger(xx.class);
(2) 使用logback
logback使用: 1. slf4j-api-1.5.11.jar 2. logback-core.jar 3. logback-classic.jar 4. logback.xml
代码同log4j
import org.slf4j.Logger; import org.slf4j.LoggerFactory; Logger logger = LoggerFactory.getLogger(xx.class);
三、日志级别
TRACE < DEBUG < INFO < WARN < ERROR
日常使用较多的是error, info , debug
四、logback简单介绍
简单介绍下常用的logback,logback优点:
- 比log4j更快
- 和log4j使用了同一个接口,slf4j-api,可以非常方便切换
- 定义了功能非常丰富的appender
- 支持日志压缩
logback要正确理解xml配置文件
- configuration:总的父节点
- property:自定义属性
- appender:输出控制器,可以输出到控制台,自定义文件等
- logger:日志级别
- root:控制器级别
一个例子:
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds"> <contextName>XXXXXXXX</contextName> <property name="log.path" value="./log/"/> <!-- 日志最大的历史 30天 --> <property name="maxHistory" value="30"/> <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%-5level] [%logger{30}:%line] %msg%n"/> <!--输出到控制台--> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--> <!--LevelFilter: 级别过滤器,根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。--> <!--例如:将过滤器的日志级别