在线玩网页游戏h5网站大全,wordpress 帖子付费,评价校园网站建设范例,常州知名网站公司目录 日志使用日志日志级别设置日志级别设置分组指定日志文件路径日志切割归档使用第三方日志框架log4j2配置文件【分级存储】logback配置文件【分级存储】 实例代码 日志
使用日志
给controller添加日志信息
要给controller类上添加Slf4j注解#xff0c;然后使用log.info(… 目录 日志使用日志日志级别设置日志级别设置分组指定日志文件路径日志切割归档使用第三方日志框架log4j2配置文件【分级存储】logback配置文件【分级存储】 实例代码 日志
使用日志
给controller添加日志信息
要给controller类上添加Slf4j注解然后使用log.info(),log.debug(),log.error()等输出日志信息
代码
RestController
Slf4j
public class HaController {//一个类可以有一个日志记录器他可以被Slf4j代替//Logger logger LoggerFactory.getLogger(getClass());GetMapping(/haha)public String haha(){//打印日志信息log.info(/haha请求进来了);//logger.info(/haha请求进来了);return 哈哈哈;}
}日志级别
只会打印指定级别以上级别的日志信息 由低到高ALL,TRACE, DEBUG, INFO, WARN, ERROR,FATAL,OFF ALL打印所有日志 TRACE追踪框架详细流程日志一般不使用 DEBUG开发调试细节日志 INFO关键、感兴趣信息日志 WARN警告但不是错误的信息日志比如版本过时 ERROR业务错误日志比如出现各种异常 FATAL致命错误日志比如jvm系统崩溃 OFF关闭所有日志记录
设置日志级别
在properties或者yaml文件中设置日志级别
实例代码
精确到某一个包下
# 将精确到“com.hyp.uselogging.controller”下的包的日志级别设置为debug
logging.level.com.hyp.uselogging.controllerdebug
# 将没有精确包的日志级别设置root
logging.level.rootinfo
为精确某一个包在根包下
# 如果想修改多个包的日志级别,将他们都修改为info级别
# 一个一个修改太麻烦springBoot提供了分组功能
logging.level.com.hyp.uselogging.controller.servicedebug
logging.level.com.hyp.uselogging.controller.mappinginfo设置分组
可能会遇到给不同包设置级别一个一个设置太麻烦所以进行分组
# 如果想修改多个包的日志级别,将他们都修改为info级别
# 一个一个修改太麻烦springBoot提供了分组功能
logging.level.com.hyp.uselogging.controller.servicedebug
logging.level.com.hyp.uselogging.controller.mappinginfo
# 分组,起名为a组包含的包在后面
logging.group.acom.hyp.uselogging.controller,com.hyp.uselogging.mapping
# 设置级别给A组包中的日志级别全设置为info
logging.level.ainfo
# 注意 springBoot给我们提供了两个预设组sql和web指定日志文件路径
将日志文件保存到指定目录中
# 指定日志文件路径
# 如果只指定路径日志文件名就会使用默认名称 spring.log
logging.file.pathD:\\# 使用logging.file.name
logging.file.nameD:\\demo.log
# 如果只规定文件名
# 会自动将这个文件存放在项目的根路径下
logging.file.namedemo.log日志切割归档
归档 将每天的日志文件放在一个文件中切割 将大小大于某个值的文件分割成多个文件 默认大小是10M
# 日志切割归档# 日志归档默认格式为 日志文件名.年.月.日.第几个文件.gz
logging.logback.rollingpolicy.file-name-pattern
# 日志切割默认为10M 一旦一个日志文件超过了10M,就要进行切割将他们分成多个文件存放
# 使用的是归档的格式区分
logging.logback.rollingpolicy.max-file-size10M使用第三方日志框架
这里使用的是log4j2
首先先要将sprinBootd的默认日志框架关闭将log4j2框架导入
!--移除springboot的默认日志框架--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions/dependency!--添加log4j2日志框架--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId/dependencylog4j2配置文件【分级存储】
配置log4j2的配置信息
实现了日志的分割和归档并且按照日志级别将不同级别的日志放在不容的文件中
?xml version1.0 encodingUTF-8?
!--日志级别以及优先级排序: OFF FATAL ERROR WARN INFO DEBUG TRACE ALL --
!--Configuration后面的status这个用于设置log4j2自身内部的信息输出可以不设置当设置成trace时你会看到log4j2内部各种详细输出--
!--monitorIntervalLog4j能够自动检测修改配置 文件和重新配置本身设置间隔秒数--
configuration statusWARN monitorInterval30!--先定义所有的appender--appenders!--这个输出控制台的配置--console nameConsole targetSYSTEM_OUT!--输出日志的格式--PatternLayout pattern[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n//console!--文件会打印出所有信息这个log每次运行程序会自动清空由append属性决定这个也挺有用的适合临时测试用--File namelog fileNamelog/test.log appendfalsePatternLayout pattern%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n//File!-- 这个会打印出所有的info及以下级别的信息每次大小超过size则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩作为存档--RollingFile nameRollingFileInfo fileName${sys:user.home}/logs/info.logfilePattern${sys:user.home}/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log!--控制台只输出level及以上级别的信息onMatch其他的直接拒绝onMismatch--ThresholdFilter levelinfo onMatchACCEPT onMismatchDENY/PatternLayout pattern[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n/PoliciesTimeBasedTriggeringPolicy/SizeBasedTriggeringPolicy size100 MB//Policies/RollingFile!--这个存放warn信息--RollingFile nameRollingFileWarn fileName${sys:user.home}/logs/warn.logfilePattern${sys:user.home}/logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.logThresholdFilter levelwarn onMatchACCEPT onMismatchDENY/PatternLayout pattern[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n/PoliciesTimeBasedTriggeringPolicy/SizeBasedTriggeringPolicy size100 MB//Policies!-- DefaultRolloverStrategy属性如不设置则默认为最多同一文件夹下7个文件这里设置了20 --DefaultRolloverStrategy max20//RollingFile!--存放error信息--RollingFile nameRollingFileError fileName${sys:user.home}/logs/error.logfilePattern${sys:user.home}/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.logThresholdFilter levelerror onMatchACCEPT onMismatchDENY/PatternLayout pattern[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n/PoliciesTimeBasedTriggeringPolicy/SizeBasedTriggeringPolicy size100 MB//Policies/RollingFile/appenders!--然后定义logger只有定义了logger并引入的appenderappender才会生效--loggers!--过滤掉spring和mybatis的一些无用的DEBUG信息--logger nameorg.springframework levelINFO/loggerlogger nameorg.mybatis levelINFO/loggerroot levelallappender-ref refConsole/appender-ref refRollingFileInfo/appender-ref refRollingFileWarn/appender-ref refRollingFileError//root/loggers
/configurationlogback配置文件【分级存储】
configuration!-- 控制台输出日志 --appender nameCONSOLE classch.qos.logback.core.ConsoleAppenderencoderpattern[%highlight(%date{yyyy-MM-dd HH:mm:ss.SSS})] [%highlight(%level)] [%logger{50}] %msg%n/pattern/encoder/appender!-- Info级别日志 --appender nameINFO_FILE classch.qos.logback.core.rolling.RollingFileAppenderfileD:/星球项目/UserCenter/UserCenterLog/userCenter_info.log/filerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePatternD:/Log/info.%d{yyyy-MM-dd}.%i.log/fileNamePatternmaxHistory30/maxHistorytimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize10MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicyencoderpattern[%date{ISO8601}] [%level] [%logger{50}] %msg%n/pattern/encoder/appender!-- Warn级别日志 --appender nameWARN_FILE classch.qos.logback.core.rolling.RollingFileAppenderfileD:/星球项目/UserCenter/UserCenterLog/userCenter_warn.log/filerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePatternD:/Log/warn.%d{yyyy-MM-dd}.%i.log/fileNamePatternmaxHistory30/maxHistorytimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize10MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicyencoderpattern[%date{ISO8601}] [%level] [%logger{50}] %msg%n/pattern/encoder/appender!-- Error级别日志 --appender nameERROR_FILE classch.qos.logback.core.rolling.RollingFileAppenderfileD:/星球项目/UserCenter/UserCenterLog/userCenter_error.log/filerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePatternD:/Log/error.%d{yyyy-MM-dd}.%i.log/fileNamePatternmaxHistory30/maxHistorytimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize1Kb/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicyencoderpattern[%date{ISO8601}] [%level] [%logger{50}] %msg%n/pattern/encoder/appender!-- 根日志器 --root levelINFOappender-ref refCONSOLE /!-- 设置不同级别的日志输出器 --appender-ref refINFO_FILE levelINFO /appender-ref refWARN_FILE levelWARN /appender-ref refERROR_FILE levelERROR //root
/configuration
实例代码
配合上面的xml配置文件就会将输出的日志文件存放在指定的目录中
RestController
Slf4j
public class HaController {//一个类可以有一个日志记录器他可以被Slf4j代替//Logger logger LoggerFactory.getLogger(getClass());GetMapping(/haha)public String haha(){//打印日志信息log.info(/haha请求进来了);log.error(错误信息);//logger.info(/haha请求进来了);return 哈哈哈;}
}