如何做网站的搜索栏,高端网约车收入怎么样,wordpress 移动导航,华大基因背景调查文章目录 1、概念2、相关依赖3、基于springboot的日志搭建3.1、yml或properties 配置3.2、 logback-spring.xml 详解3.2.1、appender 解析3.2.1.1、ConsoleAppender-控制台打印3.2.1.2、FileAppender-日志输出到文件3.2.1.3、RollingFileAppender-滚动记录并输出文件3.2.1.4、f… 文章目录 1、概念2、相关依赖3、基于springboot的日志搭建3.1、yml或properties 配置3.2、 logback-spring.xml 详解3.2.1、appender 解析3.2.1.1、ConsoleAppender-控制台打印3.2.1.2、FileAppender-日志输出到文件3.2.1.3、RollingFileAppender-滚动记录并输出文件3.2.1.4、file-日志名称和路径3.2.1.5、rollingPolicy-日志行为3.2.1.6、encoder-日志格式化3.2.1.7、filter-过滤器 3.2.2、logger 解析3.2.3、root 解析 4、logback.xml实例 1、概念 Logback是一个开源日志组件同时也是 log4j 项目的后续版本取代了log4j后续的地位。
Logback效率高、适应诸多的运行环境同时logback 对SLF4J 进行了实现天然支持 SLF4J。
Logback很灵活架构通用性强同时也是 SpringBoot 的内置日志框架。
Logback分为三个模块logback-core、logback-classic、logback-access。
Logback-core是Logback日志的基础模块。
Logback-classic模块是log4j的改进版本。它本身实现了SLF4J API所以使用它可以和log4j进行灵活的切换。
logback-access模块集成了Servlet容器以便实现HTTP访问日志功能。 2、相关依赖 logback所需要的依赖
dependency groupIdch.qos.logback/groupIdartifactIdlogback-core/artifactId
/dependencydependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactId
/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactId
/dependencyspringboot兼容logback默认集成这些依赖。
spring-boot-starter其中包含了 spring-boot-starter-logging该依赖内容就是 Spring Boot 默认的日志框架LogbackSLF4J。
spring-boot-starter-web 包含了spring-boot-starte。
所以我们只需要引入spring-boot-starter-web就可以了。
我们下面的解析基于springboot实现。
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId
/dependency3、基于springboot的日志搭建 3.1、yml或properties 配置 属性描述logging.file日志文件名logging.path日志文件路径可以是相对路径也可以是绝对路径logging.configlogback配置文件的路径logging.level.包名指定包名下面的日志级别 classpath表示当前服务Resources目录下spring.application.name表示当前服务名称level.mybatisdebug表示mybatis包下面打印日志的级别为debug
logging:config: classpath:logback-spring.xmlfile: ${spring.application.name}path: ../logs/level:mybatis: debug3.2、 logback-spring.xml 详解
logback的配置文件有三个主要的标签
appenderlogger设置某一个包或者具体的某一个类的日志打印级别、以及指定appender。它只有一个name属性level、addtivity是可选属性。root属于根logger。它其实也是一个logger只不过已经被默认命名为root。 level属性设置打印级: TRACE、DEBUG、INFO、WARN、ERROR、ALL、 OFF默认是DEBUG。 如果上面的logger没有设置level属性, 则继承root的属性 3.2.1、appender 解析
负责写日志的组件, 用来设置日志的输出位置, 日志文件的生成策略等 3.2.1.1、ConsoleAppender-控制台打印
把日志打印到控制台
appender nameSTDOUT classch.qos.logback.core.ConsoleAppender
...
/appender3.2.1.2、FileAppender-日志输出到文件
把日志输出到文件
appender nameLOG_FILE classch.qos.logback.core.FileAppender
...
/appender3.2.1.3、RollingFileAppender-滚动记录并输出文件
滚动记录同时把日志输出到文件。
支持日志文件按文件大小、日期拆分
appender nameLOG_FILE classch.qos.logback.core.rolling.FileAppender
...
/appender3.2.1.4、file-日志名称和路径
被写入的文件名可以是相对目录也可以是绝对目录如果上级目录不存在会自动创建没有默认值。
${LOG_PATH}yml配置文件中的 logging.path${LOG_FILE}yml配置文件中的 logging.file
appender nameLOG_FILE classch.qos.logback.core.rolling.FileAppender
file${LOG_PATH}${LOG_FILE}.log/file
/appender3.2.1.5、rollingPolicy-日志行为
当发生滚动时决定 RollingFileAppender 的行为涉及文件移动和重命名。 它的策略一般常用的有两个
TimeBasedRollingPolicy表示每天生成新的文件SizeAndTimeBasedRollingPolicy表示每天生成和大小生成同时执行 rollingPolicy下面有三个重要的标签
fileNamePattern表示什么周期触发一次生成新的日志文件也是周期触发后的文件名称。如果它后缀是 .gz 则代表自动压缩maxHistory表示保存日志的最大单位时间MaxFileSize表示每个文件的的大小
rollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy!-- 活动文件的名字会根据fileNamePattern的值每隔一段时间改变一次 --fileNamePattern${LOG_PATH}${LOG_FILE}.%d{yyyy-MM-dd}.%i.log.gz/fileNamePattern!-- 每产生一个日志文件该日志文件的保存期限为30天 --maxHistory7/maxHistory!-- maxFileSize:这是活动文件的大小默认值是10MB,也可以自己设置 --MaxFileSize10MB/MaxFileSize
/rollingPolicy3.2.1.6、encoder-日志格式化
%d{yyyy-MM-dd}获取现在的日期并格式化%d{HH:mm:ss.SSS}获取现在的时间并格式化%-5level输出日志级别-5表示左对齐并且固定输出5个字符如果不足在右边补0%c{1.}表示显示调用者的时候只显示包名最后一截及方法名前面的几段只取首字母%L 表示调用者所在代码的行号%msg表示需要打印的日志信息%n 表示系统换行符 颜色编码
编码加粗编码描述%black黑色%red%boldRed红色%green%boldGreen绿色%yellow%boldYellow黄色%blue%boldBlue蓝色%magenta%boldMagenta洋红色%cyan%boldCyan青色%white%boldWhite白色%gray灰色%highlight高亮色
encoderpattern%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} %green(%-5level) [%blue(%-20.20thread{20})] %cyan(%-36.36logger{36}) : %msg%n/patterncharsetutf-8/charset
/encoder3.2.1.7、filter-过滤器
使用过滤器可以设置日志的传递。
日志经过各个过滤器进而被抛弃、被打印或者不处理。
level过滤级别。参数有 TRACE、DEBUG、INFO、WARN、 ERROR、ALL 、OFFonMatch匹配大于这个级别的日志onMismatch匹配小于于这个级别的日志,可以选的有 onMatch和onMismatch可选参数有
参数描述ACCEPT打印DENY不打印NEUTRAL交给下一个过滤器处理
!-- 日志级别过滤器 --
filter classch.qos.logback.classic.filter.LevelFilter!-- 过滤的级别 --levelERROR/level!-- 匹配时的操作接收记录 --onMatchACCEPT/onMatch!-- 不匹配时的操作拒绝不记录 --onMismatchDENY/onMismatch
/filter3.2.2、logger 解析
设置某一个包或者具体的某一个类的日志打印级别以及指定appender。
它有三个属性必选的name可选的level、addtivity
name指定受此loger约束的某一个包或者具体的某一个类。level设置打印级别参数有 TRACE、DEBUG、INFO、WARN、 ERROR、ALL 、OFF。如果未设置此属性logger将会继承上级的级别。addtivity是否向上级logger传递打印信息默认true。
logger namecom.atomikos.jdbc levelOFF
/loggerlogger namecom.netflix.discovery.shared.resolver.aws.ConfigClusterResolver levelOFF
/logger3.2.3、root 解析
root同样也是logger元素但是它是根logger。只有一个level属性它默认命名为root。
level设置打印级别参数有 TRACE、DEBUG、INFO、WARN、 ERROR、ALL 、OFF。如果未设置此属性logger将会继承上级的级别默认为DEBUG。
如果logger没有设置level属性, 会继承root的属性
root levelINFOappender-ref refSTDOUT/
/root4、logback.xml实例
yml配置
logging:config: classpath:logback-spring.xmlfile: ${spring.application.name}path: ../logs/level:mybatis: debugxml配置
?xml version1.0 encodingUTF-8?
configurationspringProperty scopecontext nameapp_name sourcespring.application.name/include resourceorg/springframework/boot/logging/logback/defaults.xml/include resourceorg/springframework/boot/logging/logback/console-appender.xml/jmxConfigurator/!-- 控制台 --appender nameSTDOUT classch.qos.logback.core.ConsoleAppender!-- 日志格式 --encoderpattern%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} %green(%-5level) [%blue(%-20.20thread{20})] %cyan(%-36.36logger{36}) : %msg%n/patterncharsetutf-8/charset/encoder!--此日志appender是为开发使用只配置最底级别控制台输出的日志级别是大于或等于此级别的日志信息--filter classch.qos.logback.classic.filter.ThresholdFilter!-- 只有这个日志权限才能看sql语句 --levelDEBUG/level/filter/appenderappender nameLOG_FILE classch.qos.logback.core.rolling.FileAppenderfile${LOG_PATH}${LOG_FILE}.log/filerollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy!-- 活动文件的名字会根据fileNamePattern的值每隔一段时间改变一次 --fileNamePattern${LOG_PATH}${LOG_FILE}.%d{yyyy-MM-dd}.%i.log.gz/fileNamePattern!-- 每产生一个日志文件该日志文件的保存期限为30天 --maxHistory7/maxHistory!-- maxFileSize:这是活动文件的大小默认值是10MB,也可以自己设置 --MaxFileSize10MB/MaxFileSize/rollingPolicyencoderpattern%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} %green(%-5level) [%blue(%-20.20thread{20})] %cyan(%-36.36logger{36}) : %msg%n/patterncharsetutf-8/charset/encoder/appenderappender nameERROR_FILE classch.qos.logback.core.rolling.RollingFileAppenderfile${LOG_PATH}${LOG_FILE}.log.error/filerollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy!-- 活动文件的名字会根据fileNamePattern的值每隔一段时间改变一次 --fileNamePattern${LOG_PATH}${LOG_FILE}.%d{yyyy-MM-dd}.%i.log.error.gz/fileNamePattern!-- 每产生一个日志文件该日志文件的保存期限为30天 --maxHistory15/maxHistory!-- maxFileSize:这是活动文件的大小默认值是10MB,也可以自己设置 --MaxFileSize10MB/MaxFileSize/rollingPolicyencoderpattern%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} %green(%-5level) [%blue(%-20.20thread{20})] %cyan(%-36.36logger{36}) : %msg%n/patterncharsetutf-8/charset/encoder!-- 日志级别过滤器 --filter classch.qos.logback.classic.filter.LevelFilter!-- 过滤的级别 --levelERROR/level!-- 匹配时的操作接收记录 --onMatchACCEPT/onMatch!-- 不匹配时的操作拒绝不记录 --onMismatchDENY/onMismatch/filter/appenderlogger namecom.atomikos.jdbc levelOFF/loggerlogger namecom.netflix.discovery.shared.resolver.aws.ConfigClusterResolver levelOFF/loggerroot levelINFO!--appender-ref refSTDOUT/--appender-ref refLOG_FILE/appender-ref refERROR_FILE/appender-ref refCONSOLE//root
/configuration