当前位置: 首页 > news >正文

合肥做网站推广哪家好长沙网站seo哪家公司好

合肥做网站推广哪家好,长沙网站seo哪家公司好,做设计_素材网站有哪,qq手机版SpringBoot集成日志框架 Java生态体系日志框架介绍 简介 在Java生态体系中#xff0c;围绕着日志#xff0c;有很多成熟的解决方案。关于日志输出#xff0c;主要有两类工具。 一类是日志框架#xff08;Log4j、Logback#xff09;#xff0c;主要用来进行日志的输出的…SpringBoot集成日志框架 Java生态体系日志框架介绍 简介 在Java生态体系中围绕着日志有很多成熟的解决方案。关于日志输出主要有两类工具。 一类是日志框架Log4j、Logback主要用来进行日志的输出的比如输出到哪个文件日志格式如何等。 另外一类是日志门面slf4jcommons-logging主要一套通用的API用来屏蔽各个日志框架之间的差异的。 对于Java工程师来说关于日志工具的使用最佳实践就是在应用中使用如日志门面日志框架SLF4J Log4j 或 SLF4J Logback 这样的组合来进行日志输出。 这样做的最大好处就是业务层的开发不需要关心底层日志框架的实现及细节在编码的时候也不需要考虑日后更换框架所带来的成本。这也是门面模式所带来的好处。 常用的日志框架 j.u.l j.u.l是java.util.logging包的简称是JDK在1.4版本中引入的Java原生日志框架。Java Logging API 提供了七个日志级别用来控制输出。这七个级别分别是 SEVERE 、 WARNING 、 INFO 、 CONFIG 、 FINE 、 FINER 、 FINESTO Log4j Log4j 是 Apache 的一个开源项目通过使用 Log4j, 我们可以控制日志信息输送的目的地是控制台、文件、 GUI组件甚至是套接口服务器、 NT 的事件记录器、 UNIX Syslog 守护进程等我们也可以控制每一条日志的输出格式通过定义每一条日志信息的级别我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是这些可以通过一个配置文件来灵活地进行配置而不需要修改应用的代码。 Log4 也有七种日志级别 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 和 TRACE。 LogBack LogBack 也是一个很成熟的日志框架其实 LogBack 和 Log4j 出自一个人之手这个人就是 Ceki Gülcü。 LogBack 当前分成三个模块 logback-corelogback- classic 和 logback-access。 logback-core 是其它两个模块的基础模块。 logback-classic 是 Log4j 的一个改良版本。此外 logback-classic 完整实现 SLF4J API 使你可以很方便地更换成其它日记系统如 Log4j 或j.u.l。 logback-access 访问模块与 Servlet 容器集成提供通过 Http来访问日记的功能。 Log4j2 Log4j2是ApacheLogging Services项目开发的一款优秀的日志框架,是Log4j的升级版本。 Log4j2相比Log4j 1.x有很多新的特性和改进。 什么是日志门面 日志门面是门面模式的一个典型的应用。 门面模式 (Facade Pattern) 也称之为外观模式其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行使得子系统更易于使用。 在应用中屏蔽掉底层日志框架的具体实现即使有一天要更换代码的日志框架只需要修 jar 包最多再改改日志输出相关的配置文件就可以了。这就是解除了应用和日志框架之间的耦合。 常用的日志门面 SLF4J Java 简易日志门面 (Simple Logging Facade for Java缩写 SLF4J,是一套包装 Logging 框架的界面程式以外观模式实现。可以在软件部署的时候决定要使用的 Logging 框架目前主要支援的有Java Logging API 、Log4j 及 logback 等框架。以 M 授权方式发布。 SLF4J 的作者就是 Log4j 的作者 Ceki Gülcü他宣称 SLF4J 比 Log4j 更有效率而且比 Apache CommonsLogging) 简单、稳定。 其实 SLF4J 其实只是一个门面服务而已他并不是真正的日志框架真正的日志的输出相关的实现还是要依赖Log4J 、 logback 等日志框架。 commons-logging Apache Commons Logging 是一个基于 Java 的日志记录实用程序是用于日志记录和其他工具包的编程模型。它通过其他一些工具提供 API日志实现和包装器实现。 commons-logging 和 SLF4J 的功能是类似的主要是用来做日志门面的。提供更加好友的 API 工具。 SpringBoot集成 SLF4J Log4j 去除LogBack依赖 因为 Spring Boot 已经内置了Logback所以需要先将 Logback 移除。移除的方法是在 Spring Boot 依赖包中移除 Logback。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions /dependency如何使用了 Maven 多模块必须在所有依赖 Logback 的依赖包中将 Logback 排除否则 Spring Boot 启动时会发生如下报错 SLF4J: Class path contains multiple SLF4J providers. SLF4J: Found provider [ch.qos.logback.classic.spi.LogbackServiceProvider4f51b3e0] SLF4J: Found provider [org.apache.logging.slf4j.SLF4JServiceProvider4b9e255] SLF4J: See https://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual provider is of type [ch.qos.logback.classic.spi.LogbackServiceProvider4f51b3e0]比如下面这两个 Spring Boot 依赖包中都依赖了 Logback所以都要排除 Logback。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions /dependency 引入LogBack dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversionLombok 的版本/versionscopeprovided/scope /dependency引入Log4j2 依赖包 !-- 设置 SLF4J 与之绑定的日志包。无需提供 SLF4J 的 JAR 包因为 Lombok 已经提供了 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactIdversionSpring Boot 的版本/version /dependency此依赖包的版本与 Spring Boot 是一致的。如果不清楚应该使用什么版本可以去 Maven 仓库中查询。Maven 仓库官网Maven 配置 Log4j2 的日志配置文件 如果不提供此配置则 Spring Boot 会提供一个默认配置。通常默认配置也不是很糟糕但它有一个严重的问题它不会将日志输出至文件来备份。因此不能使用默认配置。 ?xml version1.0 encodingUTF-8? configuration statusOFFPropertiesproperty nameconsole_log_pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [%t] %l %n %m%n/propertyproperty namefile_log_pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [%t] %C.%M[%L line] %n %m%n/propertyproperty nameevery_file_size20MB/property/PropertiesappendersConsole nameConsole targetSYSTEM_OUTThresholdFilter levelINFO onMatchACCEPT onMismatchDENY/PatternLayout pattern${console_log_pattern}//ConsoleRollingFile nameDEBUG fileName./log/log4j2/debug.logfilePattern./log/log4j2/debug_log_archive/debug-%d{yyyy-MM-dd}-%i.log.zipPatternLayout pattern${file_log_pattern}/PoliciesSizeBasedTriggeringPolicy size${every_file_size}//PoliciesFiltersThresholdFilter levelDEBUG onMatchACCEPT onMismatchDENY//Filters/RollingFileRollingFile nameINFO fileName./log/log4j2/info.logfilePattern./log/log4j2/info_log_archive/info-%d{yyyy-MM-dd}-%i.log.zipPatternLayout pattern${file_log_pattern}/PoliciesSizeBasedTriggeringPolicy size${every_file_size}//PoliciesFiltersThresholdFilter levelINFO onMatchACCEPT onMismatchDENY//Filters/RollingFileRollingFile nameWARN fileName./log/log4j2/warn.logfilePattern./log/log4j2/warn_log_archive/warn-%d{yyyy-MM-dd}-%i.log.zipPatternLayout pattern${file_log_pattern}/PoliciesSizeBasedTriggeringPolicy size${every_file_size}//PoliciesFiltersThresholdFilter levelWARN onMatchACCEPT onMismatchDENY//Filters/RollingFileRollingFile nameERROR fileName./log/log4j2/error.logfilePattern./log/log4j2/error_log_archive/error-%d{yyyy-MM-dd}-%i.log.zipPatternLayout pattern${file_log_pattern}/PoliciesSizeBasedTriggeringPolicy size${every_file_size}//PoliciesFiltersThresholdFilter levelERROR onMatchACCEPT onMismatchDENY//Filters/RollingFile/appendersloggers!-- 属性 level 是用于设置最低需要输出的日志输出级别 --root levelDEBUGappender-ref refConsole/appender-ref refDEBUG/appender-ref refINFO/appender-ref refWARN/appender-ref refERROR//root/loggers /configurationLog4j2 的日志配置文件编写完成之后可以放在 Maven 模块的 resource 目录下如下图所示。 然后在 Spring Boot 配置文件如 application.yml中使用如下代码引入该配置。 logging:config: classpath:log4j2.xml使用 然后在需要使用 SLF4J 的类上使用注解 Slf4j。这样就可以直接在代码中使用 log.xxx(...) 来使用 Log4j2 日志了。 Slf4j public class UserController {// ...省略其它内容...public void fun(HttpServletRequest request, HttpServletResponse response) {log.info(fun called);} }SpringBoot集成 SLF4J LogBack 简介 在Spring boot使用是非常方便的不需要我们有什么额外的配置因为Spring boot默认支持的就是slf4jlogback的日志框架想要灵活的定制日志策略只需要我们在src/main/resources下添加配置文件即可只是默认情况下配置文件的命名需要符合以下规则 logback.xmllogback-spring.xml 其中logback-spring.xml是官方推荐的并且只有使用这种命名规则才可以配置不同环境使用不同的日志策略这一功能。 配置文件 ?xml version1.0 encodingUTF-8? configuration!-- 日志存放路径 --property namelog.path value./logs /!-- 日志输出格式 --property namelog.pattern value%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %F:%M:%L - %msg%n /!-- 控制台输出 --appender nameconsole classch.qos.logback.core.ConsoleAppenderencoderpattern%yellow(%d{HH:mm:ss.SSS}) %red([%thread]) %highlight(%-5level) %cyan(%logger{50}) - %F:%M:%L - %magenta(%msg) %n/pattern/encoder/appender!-- 系统日志输出 --appender namefile_info classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/sys-info.log/file!-- 循环政策基于时间创建日志文件 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 日志文件名格式 --fileNamePattern${log.path}/sys-info.%d{yyyy-MM-dd}.log/fileNamePattern!-- 日志最大的历史 60天 --maxHistory60/maxHistory/rollingPolicyencoderpattern${log.pattern}/pattern/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 过滤的级别 --levelINFO/level!-- 匹配时的操作接收记录 --onMatchACCEPT/onMatch!-- 不匹配时的操作拒绝不记录 --onMismatchDENY/onMismatch/filter/appenderappender namefile_error classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/sys-error.log/file!-- 循环政策基于时间创建日志文件 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 日志文件名格式 --fileNamePattern${log.path}/sys-error.%d{yyyy-MM-dd}.log/fileNamePattern!-- 日志最大的历史 60天 --maxHistory60/maxHistory/rollingPolicyencoderpattern${log.pattern}/pattern/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 过滤的级别 --levelERROR/level!-- 匹配时的操作接收记录 --onMatchACCEPT/onMatch!-- 不匹配时的操作拒绝不记录 --onMismatchDENY/onMismatch/filter/appender!-- 用户访问日志输出 --appender namesys-user classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/sys-user.log/filerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 按天回滚 daily --fileNamePattern${log.path}/sys-user.%d{yyyy-MM-dd}.log/fileNamePattern!-- 日志最大的历史 60天 --maxHistory60/maxHistory/rollingPolicyencoderpattern${log.pattern}/pattern/encoder/appenderroot levelinfoappender-ref refconsole //root!--系统操作日志--root levelinfoappender-ref reffile_info /appender-ref reffile_error //root!--系统用户操作日志--logger namesys-user levelinfoappender-ref refsys-user//logger /configuration 当想让日志输出到sys-user模块时Logger需指定名称 private Logger xiaoming LoggerFactory.getLogger(sys-user);如果使用的是lomok插件 Slf4j(topic sys-user)
http://www.hkea.cn/news/14298262/

相关文章:

  • 专做负面的网站免费行情软件app网站大全下载免费入口
  • 辽宁建设工程信息网官网新网站是哪个做捕鱼网站电话号码
  • 做外贸网站用哪些小语种福步外贸论坛注册
  • 建设淘宝客网站怎么做网站推广平台
  • 安康那个公司做网站好品牌建设工作纪实
  • 做搜索引擎网站论文 网站建设
  • asp网站采集创新的企业网站开发
  • 谷歌收录网站html5经典网站
  • 网站维护主要从哪几个方面做网站建设开发怎么样
  • 为什么网站搜索不到做问卷的几个网站
  • 电子商务网站建设类型小橡皮私人定制app软件
  • 阳山做网站seo网站怎么优化
  • 网站基本设置企业文化墙素材图片
  • 盐田区住房和建设局网站有内涵的公司名字
  • 嘉兴网站建设网站住房城乡建设部门户网站烟气脱硫
  • 湖南变电站公司中企动力技术支持网站建设怎样进入谷歌网站
  • 千岛湖建设集团网站北京西城注册公司
  • 广州seo技术优化网站seo网站申请备案要多久
  • 怎么做电影网站吗做外贸学网站
  • 上海加盟网网站建设国内做网站公司排名
  • 如何建立自己的个人网站petit模板wordpress
  • 网站建设与制作外包服务辽宁建设工程信息网怎么报名
  • 免费网站ppt模板下载网站建设标志图
  • 百度做网站怎么样新闻发稿发布平台
  • 自建网站视频教程网页编辑器中文版
  • 企业网站开发周期网站设计公司要多少钱
  • 苏州无锡市住房和城乡建设局网站关于营销的网站有哪些内容
  • 句容网站开发网站主页设计布局
  • 自己做盗版影视网站哪的网页设计培训好
  • 金华网站建设公司招聘怎么在百度上推广自己