开发环境及工具--Win10,IDE-idea,maven,jdk8
以上就是这次所使用的工具,说明---日志配置分为线上(就是我们说的服务器环境)还有线下配置(其实线下不用过多配置,正常输出到控制台就好)接下来我就一起结束了,请大家灵活运用
一,`学习logback使用,大概分为以下几步
引入maven依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
`
本人亲测,不会有版本冲突
二,比如ClassNotFoundException这些奇怪错误
接下来就是配置logback.xml了,我会大概介绍一下每个节点使用含义
<configuration scan="true" scanPeriod="60 seconds" debug="false"> <property name="CONTEXT_NAME" value="webdemo"/> <contextName>${CONTEXT_NAME}</contextName> <property name="LOG_PATH" value="var/log/webdemo"/>
scan:
当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:
设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:
当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
property : 定义一个名字,后面用${property -name}来取值
` <logger name="com.xiao.controller" level="INFO" additivity="true">
<appender-ref ref="file"/>
</logger>
<logger>
用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。<logger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。
name:
用来指定受此loger约束的某一个包或者具体的某一个类。
level:
用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
如果未设置此属性,那么当前loger将会继承上级的级别。
addtivity:
是否向上级loger传递打印信息。默认是true。
<logger>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger。
<root level="INFO"> <appender-ref ref="STDOUT" /> </root>
<root>
也是<logger>元素,但是它是根logger。只有一个level属性,应为已经被命名为"root".
level:
用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。
默认是DEBUG。
<root>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个loger。说明:这个root就是整个日志的父级别,在默认情况下所有日志都会输出父级别类似于继承的关系
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}-%msg%n </pattern> </encoder> </appender>
<appender>:
<appender>是<configuration>的子节点,是负责写日志的组件。
<appender>有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。
ConsoleAppender:把日志添加到控制台,有以下子节点:
这个基本输出到控制台的日志就配置完了
接下来介绍线上配置,把日志配置到某一个文件里面
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <Encoding>UTF-8</Encoding> <file>${LOG_PATH}/xiao-info-30de.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/xiao-info-30de.log-%d{yyyy-MM-dd}.%i</fileNamePattern> <MaxHistory>10</MaxHistory> <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <MaxFileSize>512MB</MaxFileSize> </TimeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n </pattern> </layout> </appender>
<file>${LOG_PATH}/xiao-info-30de.log</file>----文件名字
MaxHistory---日志文件滚动存储多少天
MaxFileSize-每个文件大小
打印日志实例:
String s = "www";
String ss= "2222";
log.info("======trace{}---{}",s,ss);
用逗号隔开,前面用{}占位符。