日志相关知识

log4j

logback

Slf4j 一套日志规范

slf4j-log4j 建立接口和实现之间的调用关系

1.日志的级别

debug----info----warning----error

低           高

日志级别越低,日志打印量越多,日志打印越详细

2.日志的分类

父日志:根日志(rootLogger)针对项目中使用的技术及项目中的日志处理(全局日志)

子日志(logger) : 针对某个包的日志控制 dao

查询所用,经过controller service dao 只看sql语句的日志

3.Appender 为日志输出目的地,Log4j提供的appender有以下几种:

 org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

4.Layout:日志输出格式

  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

5.日志参数

         %m   输出代码中指定的消息
  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
  %r   输出自应用启动到输出该log信息耗费的毫秒数 
  %c   输出所属的类目,通常就是所在类的全名 
  %t   输出产生该日志事件的线程名 
  %n   输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ” 
  %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:                     %d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921  
  %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 

6.log4j的使用

a.引入jar

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>

b.书写log4j.properties

c.在类上加上@slf4j注解,它提供logger作为核心对象,等同于

private static Logger logger = LoggerFactory.getLogger(TestLog.class)

d.logger的使用

 注意:对于logger在打印变量的时候需要使用{},占位符,有一个变量就是一个占位符,多个就是多个占位符

7.logback的使用

logback和log4j的区别

log4j.properties

logback.xml

1.logback和log4j的区别

springboot  如果在springboot中使用logback不需要引入任何依赖,因为springboot内部集成的就是logback可以直接使用

使用两种形式,xml和

logback配置文件
    > logback的配置文件必须放在项目根目录中 放在resources,名字必须为logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
   <!--定义项目中日志输出位置-->
   <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
       <!--定义项目的日志输出格式-->
       <!--定义项目的日志输出格式-->
       <layout class="ch.qos.logback.classic.PatternLayout">
           <pattern> [%p] %d{yyyy-MM-dd HH:mm:ss} %m %n</pattern>
       </layout>
   </appender>

   <!--项目中跟日志控制-->
   <root level="INFO">
       <appender-ref ref="stdout"/>
   </root>
   <!--项目中指定包日志控制-->
   <logger name="com.nylg.dao" level="DEBUG"/>

</configuration>

 修改springboot的配置文件

父日志级别

logging:
level:
root: error

子日志级别

logging:
level:
com.nylg.dao: debug
com.nylg.service: debug
pattern:

控制台打印日志格式

console: "[%p]:%m%n"

文件日志打印格式

 file: "[%p] %c:%m%n"

日志输出地输出到文件

file: springboot.log

日志打印格式

日志的输出地

       

原文地址:https://www.cnblogs.com/ghwq/p/12625638.html