一、默认形式
① 日志级别有6个,从小到大为(一般使用中间4种):TRACE < DEBUG < INFO < WARN < ERROR < FATAL。
② springBoot 默认的日志级别为 INFO(即INFO、WARN、ERROR),并且在 spring-boot-starter 中已经包含了 spring-boot-starter-logging 日志框架(默认为 Logback)。
③ 默认使用方式为:private final Logger logger = LoggerFactory.getLogger(LoggerTest.class);
logger.info(“test log”);
④ 默认输出到控制台。
⑤ 默认使用 src/main/resources 路径下的日志配置文件,且要求命名规范:推荐优先使用带有 -spring 的文件名作为你的日志配置,如使用logback-spring.xml
</p>
二、自定义化
① 可以指定日志的配置文件和日志的输出路径
#Logging Config
#日志文件的配置
logging.config=classpath:logconfig.xml
#日志文件的存放路径
logging.path=/root/crmLogs
② 如果使用了 lombok,则使用方式为:
类上增加注解:@Log4j(或者@Slf4j等),注意要引用 import lombok.extern.log4j.Log4j;
然后直接打印日志,可以使用占位符:log.info("test info,name:{}", name);
三、配置文件说明
① 根节点下面有5个子节点:
② 根节点属性:
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
③ root 节点:
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。
默认是DEBUG。
可以包含零个或多个元素,标识哪个appender将会添加到这个loger。
1 | <root level="INFO"> |
④ contextName 节点(此节点一般不使用):
设置上下文名称,默认上下文名称为“default”。
如:
需要使用的地方如此使用:%contextName
⑤ property 节点:
设置自定义变量,通过“${}”来使用变量。
⑥ appender 节点:
很重要的节点,appender 用来格式化日志输出节点,有俩个属性 name 和 class,class 用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。
详细说明见后面的 Demo,注释比较详细。
备注:
一般控制台输出使用layout,文件输出使用encoder
%d{HH: mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{36}——日志输出者的名字
%msg——日志消息
%n——平台的换行符
⑦ loger节点:
name:用来指定受此loger约束的某一个包或者具体的某一个类。
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前loger将会继承上级的级别。
addtivity:是否向上级loger传递打印信息。默认是true。
如下两 Demo:
1 | <logger name="com.jet.controller"/> |
⑧ 另,多环境配置:
1 | <configuration> |
application 中配置:spring.profiles.active=test
四、配置文件 Demo
1 | <configuration scan="true" scanPeriod="10 seconds"> |