日志学习笔记一、基本概念

一、日志具体元素:

1、时间日期:精确到秒

2、日志级别:ERROR、WARN、 INFO、DEBUG 、 TRACE

3、进程ID

4、分隔符:-标识日志的开始

5、线程名:方括号[] 括起来,(可能会截断控制台输出)

6、Logger名:通常用源代码的类名

7、日志内容

 

日志级别低到高:TRACE  < DEBUG  < INFO  < WARN  < ERROR  <  FATAL

二、、文件输出:

1、默认情况下,Spring Boot将日志输出到控制台,不会写到日志文件。

2、如果要编写除控制台输出之外的日志文件,则需在 application.properties 中设置 logging.file 或 logging.path 属性。

   1)logging.file ,设置文件,可以是绝对路径,也可以是相对路径。如: logging.file=my.log

   2)logging.path ,设置目录,会在该目录下创建 spring.log 文件,并写入日志内容,如: logging.path=/var/log

3、如果只配置 logging.file ,会在项目的当前路径下生成一个 xxx.log 日志文件。

4、如果只配置 logging.path ,在 /var/log 文件夹生成一个日志文件为 spring.log

 

注:二者不能同时使用,如若同时使用,则只有 logging.file 生效

 

、自定义日志配置:

1、根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载:

  1)Logback: logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy

  2) Log4j: log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml

  3)Log4j2: log4j2-spring.xml, log4j2.xml

 4)JDK (Java Util Logging): logging.properties

 

2、掌握自己的日志文件:

   1)logging.config=classpath:WEB-INF/logback-prod.xml。 指定logger文件的配置目录及名字

   2)logging.path=logs/path。 指定logger生成的日志文件存放路径。

 

3、logback.xml配置介绍

根节点包含的属性:

scan:当此属性设置为 true 时,配置文件如果发生改变,将会被重新加载,默认值为 true 。

scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当 scan 为 true 时,此属性生效。默认的时间间隔为1分钟

debug:当此属性设置为 true 时,将打印出 logback 内部日志信息,实时查看 logback 运行状态。默认值为 false 。

根节点 <configuration> 5个子节点

 1)子节点一 <root>

root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。

level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。默认是DEBUG

 

<root level="debug">

 <appender-ref ref="console" />

 <appender-ref ref="file" />

</root>

 2) 子节点二: <contextName> 设置上下文名称

每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改,可以通过 %contextName 来打印日志上下文名称,一般来说我们不用这个属性,可有可无。

<contextName>logback</contextName>

 3)子节点三: <property> 设置变量

用来定义变量值的标签, 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量

<property name="logback.logdir" value="/Users/inke/dev/log/tomcat"/>

<property name="logback.appname" value="app"/>

 4) 子节点四: <appender>

appender用来格式化日志输出节点,有俩个属性name和class,

class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。

<encoder>: 表示对日志进行编码:

name:输出到的文件

另一种常见的日志输出到文件,随着应用的运行时间越来越长,日志也会增长的越来越多,将他们输出到同一个文件并非一个好办法。 RollingFileAppender 用于切分文件日志

 5)子节点五 <loger>

 

<loger> 用来设置某一个包或者具体的某一个类的日志打印级别、以及指定 <appender> 。 <loger> 仅有一个 name 属性,一个可选的 level 和一个可选的 addtivity 属性。

name :用来指定受此loger约束的某一个包或者具体的某一个类。

level :用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前loger将会继承上级的级别。

addtivity :是否向上级loger传递打印信息。默认是true。

loger在实际使用的时候有两种情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值