记录下来,以后备用。。
主要是实现了
1.日志的info 和error 日志分类 存放
2.每日生成日志
3.相关参数解析
小知识:
日志等级
debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东;
info 重要,输出信息:用来反馈系统的当前状态给最终用户的;
warn, 可修复,系统可继续运行下去;
Error, 可修复性,但无法确定系统会正常的工作下去;
从低到高
debug-》info-》warn-》Error
----------------------------------------------------------------------------------------------------------------------------------
demo项目生成是在 http://start.spring.io/ 中
pom.xml
4.0.0
com.example
demo
0.0.1-SNAPSHOT
jar
demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
junit
junit
4.12
test
org.projectlombok
lombok
1.16.2
org.slf4j
slf4j-api
1.7.25
org.slf4j
slf4j-log4j12
1.7.25
org.springframework.boot
spring-boot-maven-plugin
logback主要是使用了 @Slf4j
这个注释代替了
private static final Logger logger = LoggerFactory.getLogger(xxx.class);
而且 @Slf4j 有内置log对象
idea 使用该注释时 可能会出现log对象不存在
对应的解决方案在 https://blog.csdn.net/return_true_hang/article/details/79325195 这篇博客中有解决方案
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class DemoApplicationTests {
@Test
public void contextLoads() {
String name = "TestName";
String passWord = "TestPassword";
log.debug("debug....");
log.info("name: {} ,password : {}",name, passWord);
log.error("error....");
}
}
{}是占位符 一个占位符对应一个参数。。。
logback 配置分为yml 和xml 两种形式
yml 是简单配置,能够配置较为简单的属性
这里我们使用xml的形式
%d - %msg%n
ERROR
DENY
ACCEPT
%d - %msg%n
/var/log/tomcat/sell/info.%d.log
ERROR
%d - %msg%n
/var/log/tomcat/sell/error.%d.log
上面的xml配置 实现了
1.日志的info 和error 日志分类 存放
2.每日生成日志
name 是指该 appender(规则) 的名字 class 是指定用什么类去实现该appender (规则)(没有查资料,自身理解。。如有错误还望指出)
ch.qos.logback.classic.PatternLayout
这句话的意思采用什么格式化
%d 是输出日期
%msg 是输出消息
%n 是换行
%d - %msg%n
这个是配置拦截器 指定了levelFilter 这个拦截器 主要是拦截日志等级
ERROR
DENY
ACCEPT
操作分三种
DENY 禁止
NEUTRAL 中立
ACCEPT 接受
禁止是 指不执行当前这条规则
中立是指 忽视当前规则 但是会往下查询有没有符合要求的规则
接受是指 执行当前这条规则
-------------------------------------------------------------------------------------------------------------------------
每天一个的滚动策略 ch.qos.logback.core.rolling.TimeBasedRollingPolicy
/var/log/tomcat/sell/info.%d.log
根据范围进行过滤
ERROR
这个filter 的特点是会打印出配置的等级以及向上的日志
例如:
配置为 info时 则会打印出 info,warn,error 这三个等级的日志
这个是适用范围 就是把上面配置的规则 应用上去 ref 使用的值是 name的值
常见错误:
1.标签名在idea中的提醒并不算友好,要注意不要打错
2.要记得在
demo文件地址:https://gitee.com/minstrel01/logback