日志的使用
一 什么是日志框架
1.是一套能實現日志輸出的工具包
2.能夠描述系統運行狀態的所有時間和內容都可以算作日志
二 日志框架的能力
1.定制輸出能力
2.定制輸出格式
3.攜帶上下文信息
4.運行時選擇性輸出
5.靈活的配置
6.優異的性能
這些特性都是System.out所不具備的
三 常見的日志框架
日志框架分類:日志門面和日志實現
日志門面:JCL,SLF4J,jboss-loggins
日志實現:Log4j,Log4j2,Logback
這么多框架我們使用哪一套呢,其實也簡單,Log4j,Log4j2和Logback是同一個作者,作者認為Log4j太爛不想修改,所以直接重寫了一個Logback。而Log4j2反而因為設計太超前,以至于很多性能我們平時都用不到,所以也不建議使用。SLF4J的作者也是Logback的作者,而且很多框架都使用了SLF4J + Logback的組合,因此它就是目前的最佳日志框架組合了
四?SLF4J和Logback的使用
下面的測試代碼都是使用idea編寫的
1.基本用法
//基于springboot的單元測試 @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class LoggerTest {//獲取日志實例private Logger logger = LoggerFactory.getLogger(LoggerTest.class);@Testpublic void test1() {//輸出日志logger.debug("debug...");logger.info("info...");logger.error("error...");}}該用法有一個很明顯的缺陷就是每個需要日志輸出的類都要寫一次
private Logger logger = LoggerFactory.getLogger(LoggerTest.class);? 很麻煩,下面使用一種注解的方式來改進代碼
2.注解用法
首先要添加lombok依賴
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId> </dependency>然后在類上添加@Slf4j注解(如果你idea版本過低會導致log變量找不到,需要安裝lombok插件)
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest //添加該注解即可 @Slf4j public class LoggerTest {@Testpublic void test2() {//日志對象名變為了loglog.debug("debug...");log.info("info...");log.error("error..."); } }3.日志中輸出變量
@Slf4j public class LoggerTest {@Testpublic void test3() {//一般寫法String name = "logback";String password = "123";log.info("一般寫法 name:" + name + ", password:" + password);//占位符寫法,用{}占位符代替變量log.info("占位符寫法 name:{}, password:{}", name, password);} }4.logback的配置
logback的配置可以分為屬性文件配置和xml文件配置,前者配置簡單,功能也簡單,后者反之
屬性文件application.properties中簡單配置
#日志輸出格式配置 logging.pattern.console=%d - %msg%n #配置日志路徑 logging.path=/var/log/tomcat/ #配置日志路徑下的日志文件名 logging.pattern.file=/var/log/tomcat/sell/ #配置日志級別 logging.level.root=debug #配置類的日志級別 logging.level.top.pancras.SellApplication=error基于xml的更多配置參考官網和其他博客……
https://logback.qos.ch/manual/configuration.html
https://www.cnblogs.com/warking/p/5710303.html
?
轉載于:https://www.cnblogs.com/coffee9527/p/8956681.html
總結
- 上一篇: ETHNET DHCP的两种方式
- 下一篇: 廖锡龙将军是如何在越战中成名的?