3免费建站网站,网站可以不进行icp备案吗,涟水做网站,手机看电影的网站建设前言#xff1a;idea需要安装lombok插件#xff0c;因为该插件中添加了Slf4j注解#xff0c;可以将Slf4j翻译成 private static final org.slf4j.Logger logger LoggerFactory.getLogger(this.XXX.class);
springboot本身就内置了slf4j日志框架#xff0c;所以不需要单独…前言idea需要安装lombok插件因为该插件中添加了Slf4j注解可以将Slf4j翻译成 private static final org.slf4j.Logger logger LoggerFactory.getLogger(this.XXX.class);
springboot本身就内置了slf4j日志框架所以不需要单独引用slf4j的依赖。
一、入门
1、添加lombok依赖 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build
2、添加配置
#日志配置
logging:config: classpath:logback-spring.xml #指定项目启动的时读取logback-spring.xml日志配置文件,文件名最好不要使用logback.xmllevel: #配置指定包的路径下应用程序的日志记录和日志级别。root: infospringfox.documentation.spring.web.readers.operation.CachingOperationNameGenerator: errororg.springframework: warnfile:path: D:\sinux_2023\project\phm\724_3\exe\logs #设置日志输出路径name: phm.log #设置日志文件的名称3、配置日志样式
?xml version1.0 encodingUTF-8?
configuration debugtrue!-- 获取yml中的log地址 --springProperty scopecontext namelogPath sourcelogging.file.path/springProperty scopecontext namelogName sourcelogging.file.name/!-- 应用名称 --property nameAPP_NAME valuePHMServer/!--定义日志文件的存储地址--property nameLOG_HOME value${logPath}/
!-- property nameLOG_HOME value/logs/${APP_NAME}/--!-- 定义日志格式 --property nameLOG_PATTERN value%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] [%-30.30logger{30}] %msg%n/!-- 高亮日志格式 --property nameHIGHLIGHT_PATTERN value%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{50}) - %highlight(%msg) %n/!-- 控制台输出-高亮 --appender nameCONSOLE-WITH-HIGHLIGHT classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.classic.encoder.PatternLayoutEncoderpattern${HIGHLIGHT_PATTERN}/pattern/encoder/appender!--文件输出的格式设置 --appender nameFILE classch.qos.logback.core.rolling.RollingFileAppender!-- 如果是 true日志会被安全的写入文件即使其他的FileAppender也在向此文件做写入操作效率低默认是 false --prudentfalse/prudent!-- 日志日常打印日志文件生成日志示例/logs/log-test/info.log --file${LOG_HOME}/${logName}/filerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 压缩日志的路径和日志格式示例info-2023-05-26_21.log.zip%d{yyyy-MM-dd}表示文件名称包含日期%i:表示当前是第几个压缩文件 --fileNamePattern${LOG_HOME}/info-%d{yyyy-MM-dd}_%i.log.zip/fileNamePattern!-- 如果按天来回滚则最大保存时间为180天180天之前的都将被清理掉 --maxHistory180/maxHistory!-- 日志总保存量为10GB,超过该日志总量的最早的日志压缩包会被清除 --totalSizeCap10GB/totalSizeCaptimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP!--文件达到 最大100MB时会被压缩和切割 --maxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicy!-- 文件输出的日志 的格式 --encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/pattern/encoder/appender!-- 日志输出级别 --!--logger 有两种级别一种是 root一种是普通的 loggerlogger 是用来设置某一个包或者具体的某一个类的日志打印机级别以及制定的 appender。logger 有三个属性- name用来指定此 logger 约束的某一个包或者具体的某一个类- level用来设置打印级别- addtivity是否向上级 logger 传递打印信息。默认是 true每个 logger 都有对应的父级关系它通过包名来决定父级关系root 是最高级的父元素。--logger nameorg.springframework levelINFO/logger namecom.sinux.* levelINFO/root levelINFOappender-ref refCONSOLE-WITH-HIGHLIGHT/appender-ref refFILE//root/configuration
4、使用
SpringBootApplication
Slf4j//日志注解
EnableWebMvc //SpringBoot 整合Swagger报错Failed to start bean ‘documentationPluginsBootstrapper‘nested exception ,在启动类添加注解EnableWebMvc。
public class SystemApplication {public static void main(String[] args) {SpringApplication.run(SystemApplication.class, args);log.info(|Spring容器启动|XX系统启动成功);}}二、注意事项
1、使用logback-spring.xml的原因
如果日志配置文件的名称是logback.xmllogback配置会先于Spring之前加载导致无法使用扩展功能。
如果日志配置文件的名称是logback-spring.xml该配置文件晚于application.yml加载
在文件中我们需要使用application.yml中的日志配置路径所以需要logback-spring.xml。
获取yml中日志路径的语法
!-- 获取yml中的log地址 --
springProperty scopecontext namelogPath sourcelogging.file.path/
springProperty scopecontext namelogName sourcelogging.file.name/!--定义日志文件的存储地址--
property nameLOG_HOME value${logPath}/
三、效果图