网站建设cms系统,oss cdn wordpress,杭州设计 公司 网站,英迈思做的网站怎么样SpringBoot生成日志文件---logback和log4j一、logbacklogback是SpringBoot自带的日志文件#xff0c;默认会为控制台输出INFO级别的日志#xff0c;并且不会将日志文件保存。如果我们只需要输出日志到文件#xff0c;直接给application.yml中添加如下配置#xff0c;对应日…
SpringBoot生成日志文件---logback和log4j 一、logback logback是SpringBoot自带的日志文件默认会为控制台输出INFO级别的日志并且不会将日志文件保存。如果我们只需要输出日志到文件直接给application.yml中添加如下配置对应日志将会输出到目录下。
logging:pattern:file: src/main/输出目录level: # 自定义需要输出的日志等级:DEBUG.INFO.ERROR.FATAL等如果想要进行比较复杂的配置需要在resources目录下建立logback-spring.xml配置文件。具体配置如下(配置信息基本一致只需根据自己的需求稍加修改即可)
?xml version1.0 encodingUTF-8?configuration scantrue scanPeriod10 seconds!-- 日志级别从低到高分为TRACE DEBUG INFO WARN ERROR FATAL如果设置为WARN则低于WARN的信息都不会输出 --!-- scan:当此属性设置为true时配置文件如果发生改变将会被重新加载默认值为true --!-- scanPeriod:设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。当scan为true时此属性生效。默认的时间间隔为1分钟。 --!-- debug:当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。 --contextNamelogback/contextName!-- name的值是变量的名称value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后可以使“${}”来使用变量。 --property namelog.path valueE:\IdeaProjects\workproject /!-- 彩色日志 --!-- 配置格式变量CONSOLE_LOG_PATTERN 彩色日志格式 --!-- magenta:洋红 --!-- boldMagenta:粗红--!-- cyan:青色 --!-- white:白色 --!-- magenta:洋红 --property nameCONSOLE_LOG_PATTERNvalue%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n/!--输出到控制台--appender nameCONSOLE classch.qos.logback.core.ConsoleAppender!--此日志appender是为开发使用只配置最底级别控制台输出的日志级别是大于或等于此级别的日志信息--!-- 例如如果此处配置了INFO级别则后面其他位置即使配置了DEBUG级别的日志也不会被输出 --filter classch.qos.logback.classic.filter.ThresholdFilterlevelINFO/level/filterencoderPattern${CONSOLE_LOG_PATTERN}/Pattern!-- 设置字符集 --charsetUTF-8/charset/encoder/appender!--输出到文件--!-- 时间滚动输出 level为 INFO 日志 --appender nameINFO_FILE classch.qos.logback.core.rolling.RollingFileAppender!-- 正在记录的日志文件的路径及文件名 --file${log.path}/log_info.log/file!--日志文件输出格式--encoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/patterncharsetUTF-8/charset/encoder!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 每天日志归档路径以及格式 --fileNamePattern${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory15/maxHistory/rollingPolicy!-- 此日志文件只记录info级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelINFO/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!-- 时间滚动输出 level为 WARN 日志 --appender nameWARN_FILE classch.qos.logback.core.rolling.RollingFileAppender!-- 正在记录的日志文件的路径及文件名 --file${log.path}/log_warn.log/file!--日志文件输出格式--encoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/patterncharsetUTF-8/charset !-- 此处设置字符集 --/encoder!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory15/maxHistory/rollingPolicy!-- 此日志文件只记录warn级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelwarn/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!-- 时间滚动输出 level为 ERROR 日志 --appender nameERROR_FILE classch.qos.logback.core.rolling.RollingFileAppender!-- 正在记录的日志文件的路径及文件名 --file${log.path}/log_error.log/file!--日志文件输出格式--encoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n/patterncharsetUTF-8/charset !-- 此处设置字符集 --/encoder!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory15/maxHistory/rollingPolicy!-- 此日志文件只记录ERROR级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelERROR/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--logger用来设置某一个包或者具体的某一个类的日志打印级别、以及指定appender。logger仅有一个name属性一个可选的level和一个可选的addtivity属性。name:用来指定受此logger约束的某一个包或者具体的某一个类。level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF如果未设置此属性那么当前logger将会继承上级的级别。--!--使用mybatis的时候sql语句是debug下才会打印而这里我们只配置了info所以想要查看sql语句的话有以下两种操作第一种把root levelINFO改成root levelDEBUG这样就会打印sql不过这样日志那边会出现很多其他消息第二种就是单独给mapper下目录配置DEBUG模式代码如下这样配置sql语句会打印其他还是正常DEBUG级别--!--开发环境:打印控制台--springProfile namedev!--可以输出项目中的debug日志包括mybatis的sql日志--logger namecom.guli levelINFO /!--root节点是必选节点用来指定最基础的日志输出级别只有一个level属性level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF默认是DEBUG可以包含零个或多个appender元素。--root levelINFOappender-ref refCONSOLE /appender-ref refINFO_FILE /appender-ref refWARN_FILE /appender-ref refERROR_FILE //root/springProfile!--生产环境:输出到文件--springProfile nameproroot levelINFOappender-ref refCONSOLE /appender-ref refDEBUG_FILE /appender-ref refINFO_FILE /appender-ref refERROR_FILE /appender-ref refWARN_FILE //root/springProfile
/configuration二、log4j 如果想要使用log4j的风格进行日志管理需要引入slf4j与log4j包并且移除SpringBoot对logback的原有依赖。 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions/dependency!--日志文件--dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.25/version/dependency!--日志文件--在resources目录下新建log4j.properties文件并在application.yml文件中指定其路径
logging:config: src/main/resources/log4j.propertieslog4j.properties配置信息如下
#log4j 配置
#log4j定义了8个级别的log优先级从高到低依次为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。
#CONSOLE前面的DEBUG是控制台需要打印什么DEBUG级别以上的日志的信息
log4j.rootLoggerDEBUG, CONSOLE, ERROR, WARN, INFO, DEBUG, ALL
#-----------------------------------------------------------------------------------------------------
#输出信息到控制台CONSOLE
log4j.appender.CONSOLE org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold INFO
log4j.appender.CONSOLE.Target System.out
log4j.appender.CONSOLE.layout org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern %-d{yyyy-MM-dd HH:mm:ss} %p %r --- [ %t ] %c : %m%n
#-----------------------------------------------------------------------------------------------------
#输出ERROR 级别以上的日志到error.log
log4j.logger.ERRORERROR
log4j.appender.ERROR org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.File logs/error/error.log
#log4j.appender.file.DatePattern .yyyy-MM-dd
log4j.appender.ERROR.Threshold ERROR
log4j.appender.ERROR.Append true
log4j.appender.ERROR.layout org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#-----------------------------------------------------------------------------------------------------
#输出WARN 级别以上的日志到warn.log
log4j.logger.WARNWARN
log4j.appender.WARN org.apache.log4j.DailyRollingFileAppender
log4j.appender.WARN.File logs/warn/warn.log
#log4j.appender.file.DatePattern .yyyy-MM-dd
log4j.appender.WARN.Threshold WARN
log4j.appender.WARN.Append true
log4j.appender.WARN.layout org.apache.log4j.PatternLayout
log4j.appender.WARN.layout.ConversionPattern %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#-----------------------------------------------------------------------------------------------------
#输出INFO级别以上的内容到info.log中
log4j.logger.INFOINFO
log4j.appender.INFO org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.File logs/info/info.log
#log4j.appender.file.DatePattern .yyyy-MM-dd
log4j.appender.INFO.Threshold INFO
log4j.appender.INFO.Append true
log4j.appender.INFO.layout org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#-----------------------------------------------------------------------------------------------------
#输出DEBUG 级别以上的日志到debugger.log
log4j.logger.DEBUGDEBUG
log4j.appender.DEBUG org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.File logs/debugger/debugger.log
#log4j.appender.file.DatePattern .yyyy-MM-dd
log4j.appender.DEBUG.Threshold DEBUG
log4j.appender.DEBUG.Append true
log4j.appender.DEBUG.layout org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#-----------------------------------------------------------------------------------------------------
#输出ALL级别的日志到all.log
log4j.logger.ALLALL
log4j.appender.ALL org.apache.log4j.DailyRollingFileAppender
log4j.appender.ALL.File logs/all/all.log
log4j.appender.file.DatePattern .yyyy-MM-dd
log4j.appender.ALL.Threshold ALL
log4j.appender.ALL.Append true
log4j.appender.ALL.layout org.apache.log4j.PatternLayout
log4j.appender.ALL.layout.ConversionPattern %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#-----------------------------------------------------------------------------------------------------