photoshop制作网站,泰安58同城招聘网最新招聘,个人博客seo,群晖wordpress 证书当前是市场上使用的日志框架有很多#xff0c;比如#xff1a;JUL、JCL、Jboss-logging、logback、log4j、slf4j....等等#xff1b;
但是日志主要分为两类#xff0c;日志门面和日志实现两类#xff1b;日志门面可以说是日志框架的抽象层#xff0c;主要实现是的日志实…当前是市场上使用的日志框架有很多比如JUL、JCL、Jboss-logging、logback、log4j、slf4j....等等
但是日志主要分为两类日志门面和日志实现两类日志门面可以说是日志框架的抽象层主要实现是的日志实现类
日志门面日志实现JCLJakarta Commons LoggingSLF4JSimple Logging Facade for Javajboss-loggingLog4j JULjava.util.logging Log4j2 Logback
Spring Boot使用日志门面slf4j日志实现Logback; dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId
/dependency 将日志框架依赖引入后开始使用 Logger logLoggerFactory.getLogger(getClass());//日志的记录器
//日志等级由低到高 tracedebuginfowarnerror
log.trace(trace日志。。。);
log.debug(debug日志。。。);
log.info(info日志。。。);
log.warn(warn日志。。。);
log.error(error日志....); 但是在执行的时候并没有将所有打印到控制台 Spring Boot 默认的日志级别为info
打印的日志配置是可以在application.properties里面进行配置的 //root指根路径下面所有打印的日志级别也可以设置某些包下面的级别将root替换成对应包的路径即可。
logging.level.roottrace //将日志输出到该目录下面的spring.log文件中 如果两个同时配 默认file有效
logging.path/data///将日志输出到指定文件中
logging.file/data/a.log//打印到控制台的格式
logging.pattern.console%d{yyyy‐MM‐dd} [%thread] %‐5level %logger{50} ‐ %msg%n//输出到文件日志的格式
logging.pattern.file%d{yyyy‐MM‐dd} [%thread] %‐5level %logger{50} %msg%n 日志输出的格式 日志输出格式%d表示日期时间%thread表示线程名%‐5level级别从左显示5个字符宽度%logger{50} 表示logger名字最长50个字符否则按照句点分割%msg日志消息%n是换行符
%d{yyyy‐MM‐dd HH:mm:ss.SSS} [%thread] %‐5level %logger{50} ‐ %msg%n日志配置也能单独拿出来做为一个配置文件使用
logback.xml该文件直接被日志框架识别但是不能使用 springProfile 标签
logback-spring.xml不能直接被日志框架识别由SpringBoot解析支持使用 springProfile 高级功能 ?xml version1.0 encodingUTF-8?
!--
scan当此属性设置为true时配置文件如果发生改变将会被重新加载默认值为true。
scanPeriod设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒当scan为true时此属性生效。默认的时间间隔为1分钟。
debug当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。
--
configuration scanfalse scanPeriod60 seconds debugfalse!-- 定义日志的根目录 --property nameLOG_HOME value/data/a.log /!-- 定义日志文件名称 --property nameappName valuespringboot/property!-- ch.qos.logback.core.ConsoleAppender 表示控制台输出 --appender namestdout classch.qos.logback.core.ConsoleAppenderlayout classch.qos.logback.classic.PatternLayoutspringProfile namedev !--文件名为logback-spring.xml支持若为logback.xml 去掉该标签直接使用 pattern 标签--pattern%d{yyyy-MM-dd HH:mm:ss.SSS} ---- [%thread] --- %-5level %logger{50} - %msg%n/pattern/springProfilespringProfile name!dev pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/pattern/springProfile/layout/appender!-- 滚动记录文件先将日志记录到指定文件当符合某个条件时将日志记录到其他文件 --appender nameappLogAppender classch.qos.logback.core.rolling.RollingFileAppender!-- 指定日志文件的名称 --file${LOG_HOME}/${appName}.log/file!--当发生滚动时决定 RollingFileAppender 的行为涉及文件移动和重命名TimeBasedRollingPolicy 最常用的滚动策略它根据时间来制定滚动策略既负责滚动也负责出发滚动。--rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}按天进行日志滚动%i当文件大小超过maxFileSize时按照i进行文件滚动--fileNamePattern${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.log/fileNamePattern!--可选节点控制保留的归档文件的最大数量超出数量就删除旧文件。假设设置每天滚动且maxHistory是365则只保存最近365天的文件删除之前的旧文件。注意删除旧文件是那些为了归档而创建的目录也会被删除。--MaxHistory365/MaxHistory!--当日志文件超过maxFileSize指定的大小是根据上面提到的%i进行日志文件滚动 注意此处配置SizeBasedTriggeringPolicy是无法实现按文件大小进行滚动的必须配置timeBasedFileNamingAndTriggeringPolicy--timeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicy!-- 日志输出格式 --layout classch.qos.logback.classic.PatternLayoutpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n/pattern/layout/appender!--logger主要用于存放日志对象也可以定义日志类型、级别name表示匹配的logger类型前缀也就是包的前半部分level要记录的日志级别包括 TRACE DEBUG INFO WARN ERRORadditivity作用在于children-logger是否使用 rootLogger配置的appender进行输出false表示只用当前logger的appender-reftrue表示当前logger的appender-ref和rootLogger的appender-ref都有效--!-- hibernate logger --!--logger namecom.atguigu leveldebug /--!-- Spring framework logger --!--logger nameorg.springframework leveldebug additivityfalse/logger--!--root与logger是父子关系没有特别定义则默认为root任何一个类只会和一个logger对应要么是定义的logger要么是root判断的关键在于找到这个logger然后判断这个logger的appender和level。--root levelinfoappender-ref refstdout /appender-ref refappLogAppender //root
/configuration springProfile :
在配置文件中可以指定使用哪个日志输出格式 spring.profiles.activespringProfileName 未指定时会自动找名称带有开头的日志格式没有则报错多个含有名称默认选择最后一个。