现在海外做的比较好一点的网站,广东东莞住建局,学了dw 就可以做网站了吗,成都广告设计制作公司SpringBoot开发中如何选用日志框架呢#xff1f; 出于性能等原因#xff0c;Logback 目前是springboot应用日志的标配#xff1b; 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式。日志框架的基础在学习这块时需要一些日志框架的发展和基础#xff0c;同时了…SpringBoot开发中如何选用日志框架呢 出于性能等原因Logback 目前是springboot应用日志的标配 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式。日志框架的基础在学习这块时需要一些日志框架的发展和基础同时了解日志配置时考虑的因素。关于日志框架日志门面Java日志库是最能体现Java库在进化中的渊源关系的在理解时重点理解日志框架本身和日志门面以及比较好的实践等。要关注其历史渊源和设计比如桥接而具体在使用时查询接口即可 否则会陷入JUL(Java Util Log), JCL(Commons Logging), Log4j, SLF4J, LogbackLog4j2傻傻分不清楚的境地。配置时考虑点在配置日志时需要考虑哪些因素支持日志路径日志level等配置日志控制配置通过application.yml下发按天生成日志当天的日志50MB回滚最多保存10天日志生成的日志中Pattern自定义Pattern中添加用户自定义的MDC字段比如用户信息(当前日志是由哪个用户的请求产生)request信息。此种方式可以通过AOP切面控制在MDC中添加requestID在spring-logback.xml中配置Pattern。根据不同的运行环境设置Profile - devtestproduct对控制台Err和全量日志分别配置对第三方包路径日志控制实现范例如下两个例子基本包含了上述的考虑点:综合范例application.ymllogging:level:root: debugpath: C:/data/logs/springboot-logback-demo
server:port: 8080
spring:application:name: springboot-logback-demo
debug: falseSpring-logback.xml?xml version1.0 encodingUTF-8?
configuration!-- 日志根目录--springProperty scopecontext nameLOG_HOME sourcelogging.path defaultValue/data/logs/springboot-logback-demo/!-- 日志级别 --springProperty scopecontext nameLOG_ROOT_LEVEL sourcelogging.level.root defaultValueDEBUG/!-- 标识这个STDOUT 将会添加到这个logger --springProperty scopecontext nameSTDOUT sourcelog.stdout defaultValueSTDOUT/!-- 日志文件名称--property nameLOG_PREFIX valuespring-boot-logback /!-- 日志文件编码--property nameLOG_CHARSET valueUTF-8 /!-- 日志文件路径日期--property nameLOG_DIR value${LOG_HOME}/%d{yyyyMMdd} /!--对日志进行格式化--property nameLOG_MSG value- | [%X{requestUUID}] | [%d{yyyyMMdd HH:mm:ss.SSS}] | [%level] | [${HOSTNAME}] | [%thread] | [%logger{36}] | -- %msg|%n /!--文件大小默认10MB--property nameMAX_FILE_SIZE value50MB /!-- 配置日志的滚动时间 表示只保留最近 10 天的日志--property nameMAX_HISTORY value10/!--输出到控制台--appender nameSTDOUT classch.qos.logback.core.ConsoleAppender!-- 输出的日志内容格式化--layout classch.qos.logback.classic.PatternLayoutpattern${LOG_MSG}/pattern/layout/appender!--输出到文件--appender name0 classch.qos.logback.core.rolling.RollingFileAppender/appender!-- 定义 ALL 日志的输出方式:--appender nameFILE_ALL classch.qos.logback.core.rolling.RollingFileAppender!--日志文件路径日志文件名称--File${LOG_HOME}/all_${LOG_PREFIX}.log/File!-- 设置滚动策略当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候新的内容写入新的文件 默认10MB --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件路径新的 ALL 日志文件名称“ i ” 是个变量 --FileNamePattern${LOG_DIR}/all_${LOG_PREFIX}%i.log/FileNamePattern!-- 配置日志的滚动时间 表示只保留最近 10 天的日志--MaxHistory${MAX_HISTORY}/MaxHistory!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候新的内容写入新的文件 默认10MB--timeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize${MAX_FILE_SIZE}/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicy!-- 输出的日志内容格式化--layout classch.qos.logback.classic.PatternLayoutpattern${LOG_MSG}/pattern/layout/appender!-- 定义 ERROR 日志的输出方式:--appender nameFILE_ERROR classch.qos.logback.core.rolling.RollingFileAppender!-- 下面为配置只输出error级别的日志 --filter classch.qos.logback.classic.filter.LevelFilterlevelERROR/levelOnMismatchDENY/OnMismatchOnMatchACCEPT/OnMatch/filter!--日志文件路径日志文件名称--File${LOG_HOME}/err_${LOG_PREFIX}.log/File!-- 设置滚动策略当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候新的内容写入新的文件 默认10MB --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件路径新的 ERR 日志文件名称“ i ” 是个变量 --FileNamePattern${LOG_DIR}/err_${LOG_PREFIX}%i.log/FileNamePattern!-- 配置日志的滚动时间 表示只保留最近 10 天的日志--MaxHistory${MAX_HISTORY}/MaxHistory!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候新的内容写入新的文件 默认10MB--timeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize${MAX_FILE_SIZE}/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicy!-- 输出的日志内容格式化--layout classch.qos.logback.classic.PatternLayoutPattern${LOG_MSG}/Pattern/layout/appender!-- additivity 设为false,则logger内容不附加至root 配置以配置包下的所有类的日志的打印级别是 ERROR--logger nameorg.springframework levelERROR /logger nameorg.apache.commons levelERROR /logger nameorg.apache.zookeeper levelERROR /logger namecom.alibaba.dubbo.monitor levelERROR/logger namecom.alibaba.dubbo.remoting levelERROR /!-- ${LOG_ROOT_LEVEL} 日志级别 --root level${LOG_ROOT_LEVEL}!-- 标识这个${STDOUT}将会添加到这个logger --appender-ref ref${STDOUT}/!-- FILE_ALL 日志输出添加到 logger --appender-ref refFILE_ALL/!-- FILE_ERROR 日志输出添加到 logger --appender-ref refFILE_ERROR//root/configurationProfile 相关的配置可以参考:?xml version1.0 encodingUTF-8?
configurationinclude resourceorg/springframework/boot/logging/logback/base.xml /!-- roll by day --appender nameFILE classch.qos.logback.core.rolling.RollingFileAppender rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy fileNamePatternlogs/springboot-logback-demo.%d{yyyy-MM-dd}.log/fileNamePattern maxHistory30/maxHistory /rollingPolicy encoder pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n/pattern /encoder /appender !-- dev --logger nameorg.springframework.web levelINFO/root levelINFOappender-ref refFILE //root!-- test or production --springProfile nametest,prodlogger nameorg.springframework.web levelINFO/logger namecom.pdai.springboot levelINFO/root levelINFOappender-ref refFILE //root/springProfile/configuration在配置前可以参考如下文章https://www.cnblogs.com/warking/p/5710303.html示例源码https://download.csdn.net/download/DeveloperFire/87519876