学习https://mp.weixin.qq.com/s/XiCky-Z8-n4vqItJVHjDIg,归纳笔记,基本上一样
一 特定的地方打印日志,最初System.out.println(.....) 或者System.err.println 把所有的信息都输出到控制台
二 日志消息除了能打印到控制台, 还可以输出到文件做格式化,例变成纯文本,XML, HTML格式等等,甚至可以通过邮件发送出去(例如生成环境出错的消息)
能对日志进行分级,有些日志纯属debug , 在本机或者测试环境使用, 方便程序员的调试, 生产环境完全不需要。有些日志是描述错误(error)的, 在生产环境下出错的话必须要记录下来,帮助后续的分析。
对于不同的Java class,不同的 package , 还有不同级别的日志,应该可以灵活地输出到不同的文件中。
例如对于com.foo 这个package日志都输出到 foo.log 文件中,对于com.bar 这个package 都输出到bar. log文件中,对于所有的ERROR级别的日志都输出到 errors.log文件中
1 一个类来表达日志的概念,至少有两个属性,一个是时间戳,一个是消息本身,LoggingEvent
2 日志可以输出到不同的地方,控制台、文件、邮件等等, 这个抽象一下就是写到不同的目的地, Appender
Appender (LoggingEvent e) (ConsoleAppender 控制台输出日志)(FileAppender 文件输出日志)(SMTPAppender 邮件输出日志)
3 日志内容可以格式化,定义一个Formatter接口去格式化消息。
Appender (LoggingEvent e) (SimpleFormatter)(XMLFormatter)(HTMLFormatter)
4 Logger 获取Logger的时候要传入类名或者包名,Logger 和Appender关联
Logger logger1=Logger.getLogger("com.foo");
Logger logger2=Logger.getLogger("com.bar");
logger1.addAppender(new FileAppender("c:\\logs\\foo.logs));
logger1.addAppender(new FileAppender("c:\\logs\\bar.logs));
5 Priority的类,里边定义5个常量DEBUG, INFO, WARN, ERROR, FATAL如Logger.debug(....) , Logger.info(...) , Logger.warn(...) 等
日志注解 @Slf4j 安装插件 lombok pom.xml增加
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
添加@Slf4j 使用log.info(".........."); log.error("...........");