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

网页版微信下载湖南seo优化首选

网页版微信下载,湖南seo优化首选,舆情分析软件,wordpress tag 排序文章目录 一. 日志的介绍1. 什么是日志2. 日志的作用 二. 日志的使用1. 日志格式说明2. 自定义日志的输出3. 日志级别4. 日志级别的配置5. 日志持久化6. 更简单的输出日志-Lomok7. Lombok框架实现原理以及其他常见注解 一. 日志的介绍 1. 什么是日志 日志是我们程序重要组成部… 文章目录 一. 日志的介绍1. 什么是日志2. 日志的作用 二. 日志的使用1. 日志格式说明2. 自定义日志的输出3. 日志级别4. 日志级别的配置5. 日志持久化6. 更简单的输出日志-Lomok7. Lombok框架实现原理以及其他常见注解 一. 日志的介绍 1. 什么是日志 日志是我们程序重要组成部分它是程序在运行过程当中输出的一些提示或异常信息我们可以通过日志来观察程序执行的情况如果程序出现 Bug我们可以根据日志去发现和排查程序的 Bug。 SpringBoot 项目在启动的时候就会有默认的日志输出如下图所示 之所以会有上面的输出是因为 SpringBoot 中内置了日志框架。 SpringBoot 中内置了 SLF4J 和 logback 两个日志框架用户层面并不是直接操作具体的日志对象而是使用 SLF4J 提供给用户的 API 进而由 logback 操作具体的日志对象实现日志。 SLF4J 这类框架是使用“门面模式”来实现的SLF4J 其实和 JDBC 很像我们知道使用 JDBC 操作数据库一套 JDBC 代码就可以操作很多种数据库可以是 MySQLOracleDB2SqlServer等而这个JDBC 就相当于代理一样来代理去操作数据库我们不必关心各种数据库的实现只需关注 JDBC 提供给我们的的 API 即可。 类似的SLF4J 中也并不是真正完成了日志实现的框架它只是一个门面或者一个代理我们调用 SLF4J 的 APISLF4J 中还会去调用 logback 这样的日志实现框架此时我们就不必关心日志实现的细节这一层面我们是感知不到的这就是门面模式所带来的好处还有一个好处就是如果日志实现层出现了漏洞只需要修改更换日志实现的框架即可而 SLF4J 可以匹配相应的日志框架此时虽然日志实现的框架发生了改变但我们写的代码仍然不受影响这样就使得系统的依赖性降低利于系统更新和维护。 2. 日志的作用 能够帮助程序猿排除程序的 Bug。记录用户登录日志方便分析用户是正常登录还是恶意破解用户。记录系统的操作日志方便数据恢复和定位操作人。记录程序的执行时间方便为以后优化程序提供数据支持。 二. 日志的使用 使用日志框架可以配置日志的级别来控制日志的输出而我们日常使用System.out.printf来输出日志是无法做到这一点的。 1. 日志格式说明 对于控制台输出的日志它的各部分含义如下 信息中的包名有部分是简写取的是包名的第一个字母 根据这些信息我们就可以知道日志是发生在什么时间在哪个线程哪个类以及具体的日志信息。 2. 自定义日志的输出 1️⃣第一步在类中先获取到日志对象这个日志对象来自于日志框架SLF4J。 假设我们在类LogController设置自定义日志的输出则日志对象创建代码如下 每一个类都对应一个日志对象可以通过日志工厂LoggerFactory获取的导包的时候要注意Logger对象是在org.slf4j包下的不要导错。 // 获取日志对象 private static Logger log LoggerFactory.getLogger(LogController.class);getLogger()一般传入传入当前类的类型这里的参数用来定位日志的归属类以方便日志输出输出的日志信息中有了日志的定位 才能更方便、更直观的定位到问题类。 2️⃣第二步使用日志对象提供的方法来实现自定义日志的打印。 日志对象提供的方法有很多可以设定不同级别的日志信息输出。 示例代码 RestController相当于是将Controller和ResponseBody这两个注解合起来的效果。 package com.example.springboot2.controller;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController public class LogController {// 获取日志对象private static Logger log LoggerFactory.getLogger(LogController.class);RequestMapping(/log)public void log() {log.trace(我是trace);log.debug(我是debug);log.info((我是info));log.warn(我是warn);log.error(我是error);} }我们启动程序后访问http://127.0.0.1:8080/log后控制台就有相应的日志输出了。 观察输出结果我们的代码是写了 5 个级别的日志输出的为什么这里结果只有 3 个结果呢这是因为SpringBoot 项目下默认日志级别为info低于info日志级别的都不会输出。 3. 日志级别 日志级别分为一下几种 trace微量少许的意思级别最低。debug需要调试时候的关键信息打印。info普通的打印信息默认日志级别。warn警告不影响使用但需要注意的问题。error错误信息级别较高的错误日志信息。fatal致命的因为代码异常导致程序退出执行的事件不支持用户自定义。 SpringBoot 项目默认的日志级别是info那么比info日志级别低的是不能输出的也就是debug与trace的日志是不会输出的只有大于等于info级别的日志才会输出。 日志级别的作用 日志级别可以帮我们筛选出重要的信息比如设置日志级别为 error那么就可以只看程序的报错日志了对于普通的调试日志和业务日志就可以忽略了从而节省开发者信息筛选的时间。日志级别可以控制不同环境下⼀个程序是否需要打印日志如开发环境我们就需要很详细的日志信息 而生产环境为了保证性能和安全性就会输⼊尽量少的⽇志通过日志的级别就可以实现此需求。 简单来说就是过滤信息将业务不需要的日志屏蔽掉。 4. 日志级别的配置 日志级别是可以通过配置文件进行设置的日志级别包括两类一类是全局日志级别另一类就是局部日志级别全局日志级别可以影响全局日志的输出而局部日志级别只会影响一个局部的日志输出并且局部日志级别配置大于全局日志级别的配置。 全局日志级别配置如修改默认日志级别为trace properties 日志格式 # 设置全局日志级别 logging.level.roottraceyml 日志格式 logging:level:root: trace运行上面我们的自定义日志代码此时就会发现我们所有的自定义日志信息都会输出并且随着程序启动相比较默认情况下会有更多的日志信息输出毕竟这里设置的是全局的配置文件会影响全局。 下面来介绍局部日志级别的配置我们将LogController类的日志级别设置为warn此时只会LogController类中日志输出级别并不会影响其他位置的日志信息输出。 properties 格式配置文件 # 设置夹局部的日志级别 (包名/包名类名) logging.level.com.example.demo.controller.LogControllerwarnyml 格式配置文件 logging:level:com:example:demo:controller: LogController :warn控制台结果 yml 格式配置文件可以一步设置全局和局部的日志级别比如 logging:level:root: infocom:example:springboot2:controller: errorservice: warnroot设置的是全局日志级别项目中所有日志级别都是info和root同级下可设置局部具体类的日志级别m这里就是com.example.springboot2.controller和com.example.springboot2.service包下的类级别分别为error和warn。 5. 日志持久化 前面的介绍都是将日志输出在控制台上的然而我们在生产环境下往往需要将日志保存下来以便于后续出现问题时去追溯原因将日志保存下来的过程就称之为持久化。 实现日志持久化的方式就是将日志信息保存到磁盘同样可以通过设置配置文件实现。 方式1设置日志保存路径 properties 格式配置文件 logging.file.pathD:\\bit\\logsyml 格式配置文件 logging:file:path: D:\\bit\\logs启动程序此时 SpringBoot 就会将控制台中打印的日志写到对应的目录了日志文件默认名的为spring.log。 方式2设置日志保存文件 properties 格式配置文件 logging.file.nameD:\\bit\\log\\logging.logyml 格式配置文件 logging:file:name: D:\\bit\\log\\logging.log效果如下 还要注意多次访问程序产生的日志是以追加的形式保存到日志文件当中的SpringBoot 默认保存日志文件的大小为10MB****超出范围就会自动创建新的日志文件然后保存到新的日志文件当中。 当然也可以通过配置文件自定义日志文件的大小配置方式如下 # properties格式 logging.logback.rollingpolicy.max-file-size10MB# yml格式 logging:logback:rollingpolicy:max-file-size: 10MB6. 更简单的输出日志-Lomok 每次都使⽤ LoggerFactory.getLogger(xxx.class) 很繁琐且每个类都添加⼀遍也很麻烦在 Lombok 中有一个Slf4j注解可以使用该注解更简单的输出日志。 准备工作首先要确保你的 IDEA 中有 Lombok 这个插件没有的话去下载一下。 然后添加 Lombok 依赖可以使用 Edit Starters 插件快捷添加。 刷新一下依赖就添加好了。 使用方法在想打印日志的类上加上 Slf4j 注解即可它会为当前类提供一个 log 对象。 要注意使用 Slf4j 注解在程序中使用 log 对象即可输⼊⽇志并且只能使⽤ log 对象才能输出这是 lombok 提供的对象名代码中输入 log 后就会有相关方法的提醒前提是安装了 lombok 插件。 package com.example.springboot2.controller;import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController Slf4j // 当前的类中就可以直接使用 log 对象, Slf4j 产生一个 log 对象, 直接使用即可 public class LogController2 {RequestMapping(/log2)public void log2(){log.trace(我是trace);log.debug(我是debug);log.info((我是info));log.warn(我是warn);log.error(我是error);}}启动程序访问路路径http://127.0.0.1:8080/log2同样可以输出日志代码更简单。 Slf4j 注解替代了日志对象获取的代码 private final static Logger log LoggerFactory.getLogger(LogController2.class);7. Lombok框架实现原理以及其他常见注解 Lombok 框架其实在编译的时候将依据注解去替生成对应的代码比如就像上面的日志对象创建加上一个 Slf4j 注解后在编译时就会将类似与上面创建日志对象的代码生成到我们所写代码里面去包括Lombok 其他的注解如生成 Setter 的注解 Setter生成 Getter 的注解 Getter 等都是通过编译时期间实现的。 Lombok作用 比如上面我们写的代码最终生成相应的字节码文件就在 target 目录中target 目录中的代码才是项目最终执行的代码查看 target 目录如下 我们来对比一下我们LogController2.java原文件代码和程序运行起来后生成LogController2.class文件中的代码由 IDEA 反编译显示。 发现代码中的 Slf4j 注解就不存存在了被 log 对象替代了所以Lombok 是不会影响程序运行的信能的它要完成的工作都是在编译生成字节码文件前完成的。 其他常用注解 基本注解 注解作用Setter⾃动添加 setter 方法Getter⾃动添加 getter 方法ToString⾃动添加 toString 方法EqualsAndHashCode⾃动添加 equals 和 hashCode 方法NoArgsConstructor⾃动添加⽆参构造方法AllArgsConstructor⾃动添加全属性构造⽅法顺序按照属性的定义顺序NonNull属性不能为 nullRequireArgsConstructor⾃动添加必需属性的构造方法final NonNull 的 属性为必需 组合注解 注解作用DataGetter Setter ToString EqualsAndHashCode RequiredArgsConstructor NoArgsConstructor 日志注解 注解作用Slf4j添加⼀个名为 log 的日志使用 slf4j 使用 Lombok 提供给我们的这些注释可以很好的帮助我们消除项目中大量冗余的代码可以使得我们的 Java 类可以看起来非常的干净整洁。
http://www.w-s-a.com/news/18347/

相关文章:

  • 网站建设需怎么做有网站怎么做企业邮箱
  • 网站制作流程视频教程小程序多少钱一年
  • 暗网是什么网站花都网站建设哪家好
  • 贵州网站开发流程晋江论坛手机版
  • 网站建设丿金手指谷哥14阿里巴巴官网电脑版
  • 网站开发招聘信息匿名ip访问网站受限
  • 网站转app工具网站规划建设与管理维护大作业
  • flash是怎么做网站的.net购物网站开发
  • 烟台网站建设求职简历品质商城网站建设
  • 做百度外链哪些网站权重高点做网站具备的条件
  • 怎么样用ppt做网站红番茄 网站点评
  • 建设银行河北分行招聘网站哪里能找到网站
  • 兰州营销型网站网站建设收费标准
  • 网站首页动图怎么做自己做网站很难
  • 自建网站如何盈利推广引流最快的方法
  • 网页设计网站结构图怎么弄网站用户 分析
  • 企业手机网站建设策划天津网页设计工作
  • 苏州vr全景网站建设公司怎么讲解网页的制作技术
  • 徐州智能建站怎么做苏州建设网站首页
  • 网站支付功能报价wordpress主页透明
  • asia域名的网站宁波模板建站源码
  • 官网网站怎么做个人网站盈利
  • 青龙桥网站建设网站同时做竞价和优化可以
  • 沭阳建设网站婴儿辅食中企动力提供网站建设
  • 常州做网站的公司济宁网站建设seo
  • 用wordpress做企业网站视频教程韶关建设网站
  • 怎么做一个免费的网站云南网站设计选哪家
  • dw做六个页面的网站做网站运营有前途吗
  • 中级网站开发工程师 试题战地之王网站做任务
  • 广东东莞保安公司湖南 seo