目录

  • 前言
  • 一.下载 lombok 插件
  • 二.pom文件导入依赖
  • 三.简单记录日志
    • 1.配置yml文件
    • 2.实际使用(加@Slf4j)
  • 四.日志记录更多配置(logback-spring.xml配置文件)
    • 1.配置yml文件
    • 2.logback-spring.xml配置文件位置
    • 3.logback-spring.xml配置文件内容
    • 4.使用
    • 5.拓展:如果你想把sql的执行记录打印在控制台上怎么办?
  • 五.使用注解减少代码开发
    • 1.@Data
    • 2.@Setter和@Getter
    • 3.更多注解作用

前言

(1) 先说说什么时候会用到记录日志吧,咱们平常开发是用不到的,因为咱们可以直接看到控制台,但是当咱们部署到了服务器上,然后项目出现了问题,咱们怎么排查问题呢,不能直接去服务器里面看吧。所以这时咱们就需要了日志文件,咱们把生成的日志文件放到服务器固定路径,然后拿到文件看到异常就可以解决问题了。
(2) 咱们经常要用实体类,需要进行封装,然后需要get、set方法,那么使用lombok就可以让你减少代码的编写。

下面我是基于 springboot项目进行配置的

一.下载 lombok 插件

注意: 有的版本的idea搜不到,因为他已经内置了 Lombok,那你就忽略这步。

idea左上角 File -> Settings -> Plugins

二.pom文件导入依赖

 <!-- lombok依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

三.简单记录日志

1.配置yml文件

# path 和 name 不会同时生效,区别在于 name可以自定义日志名字:一般工作中定义为${spring.application.name}.log,当然你也可以定义成别的。
logging:file:name: C:\LogFile\test.log # 会在LogFile目录下生成 test.log 日志文件,并且如果 LogFile目录不存在,会自动给你创建。
#    path: C:\LogFile  # 会在LogFile目录下生成默认 spring.txt 日志文件,并且如果 LogFile目录不存在,会自动给你创建。

2.实际使用(加@Slf4j)

@Slf4j注解加上就ok了,当然他也会记录你控制台打印的信息。

@Component
@Slf4j //日志注解
//继承CommandLineRunner,可以使项目启动之后就执行
public class TestLog implements CommandLineRunner { @Overridepublic void run(String... args) throws Exception {//记录日志内容log.info("++++++++ 记录日志 ++++++++");}
}

四.日志记录更多配置(logback-spring.xml配置文件)

1.配置yml文件

logging:config: classpath:logback-spring.xml  #日志配置文件,会在当前项目下去找日志配置文件

2.logback-spring.xml配置文件位置

3.logback-spring.xml配置文件内容

<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="2.5 seconds" debug="false"><!--日志格式 --><property name="logPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger - %msg%n"/><!-- 日志文件路径 --><property name="logPath" value="/kunkun/log/"></property><!-- 日志文件名称 --><property name="logName" value="springboot_log"></property><!--日志记录控制台输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><!--日志格式 --><pattern>${logPattern}</pattern><!--日志编码 --><charset>UTF-8</charset></encoder></appender><!-- 日志文件配置 对应级别记录到对应文件中--><appender name="LEVEL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!--让对应日志级别,记录到对应得文件中 --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>trace或debug或info或warn或error或fatal</level></filter><!-- 日志文件的路径和名称 --><file>${logPath}${logName}.log</file><encoder><!--日志格式 --><pattern>${logPattern}</pattern><!--日志编码 --><charset>UTF-8</charset></encoder><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志归档 每天的日志都是一个文件--><!-- 归档日志的格式 --><fileNamePattern>${logPath}${logName}-%d{yyyy-MM-dd}.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!--单个日志最大大小 --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文档保留天数--><maxHistory>15</maxHistory></rollingPolicy></appender><!-- 日志文件配置 所有级别日志都记录到一个文件里面--><appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件的路径和名称 --><file>${logPath}${logName}.log</file><encoder><!--日志格式 --><pattern>${logPattern}</pattern><!--日志编码 --><charset>UTF-8</charset></encoder><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志归档 每天的日志都是一个文件--><!-- 归档日志的格式 --><fileNamePattern>${logPath}${logName}-%d{yyyy-MM-dd}.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!--单个日志最大大小 --><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文档保留天数--><maxHistory>15</maxHistory></rollingPolicy></appender><!-- 开发、测试环境,额外指定不同包下不同的日志等级 --><springProfile name="dev,test"><!--日志是info的级别的 --><root level="info"><appender-ref ref="CONSOLE" /><appender-ref ref="LEVEL_FILE" /><appender-ref ref="ALL_FILE" /></root><!--指定org.springframework.web日志级别是ERROR --><logger name="org.springframework.web" level="ERROR"></logger><!--指定org.springboot.sample日志级别是ERROR --><logger name="org.springboot.sample" level="ERROR"></logger><!--指定com.ipage.work日志级别是INFO--><logger name="com.ipage.work" level="INFO"></logger></springProfile><!-- 生产环境 --><springProfile name="prod"><!--日志是info的级别的,生成环境尽量不要控制台日志 --><root level="info"><appender-ref ref="LEVEL_FILE" /><appender-ref ref="ALL_FILE" /></root><!--优先级大于 <root/>标签 --><logger name="org.springframework.web" level="ERROR"> </logger><logger name="org.springboot.sample" level="ERROR"></logger><logger name="com.ipage.work" level="INFO"> </logger></springProfile>
</configuration>

4.使用

配置好之后,加上@Slf4j注解,然后直接使用就行了。

5.拓展:如果你想把sql的执行记录打印在控制台上怎么办?

①记录sql需要debug级别的,所以把 <root level="info"> 改成 <root level="debug">
②在yml文件中配置

logging:level:XXX.XXX.dao: debug #你执行dao包的位置

五.使用注解减少代码开发

1.@Data

通常我们要在实体类里面,定义属性,然后手动去生成get、set、toString方法,我们直接去使用@Data注解就会自动生成get、set、toString方法。

@Data
public class Kunkun {private int id;private String chang;private String tiao;
}

2.@Setter和@Getter

@Data注解作用一样

public class Kunkun {@Getter@Setterprivate int id;private String chang;private String tiao;
}

3.更多注解作用

(1) @Synchronized : 同步方法安全的转化。
(2) @ToString: 自动生成toString方法。
属性1:callSuper 是否输出父类的toString方法,默认为false。
属性2:includeFieldNames 是否包含字段名称,默认为true。
属性3:exclude 排除生成tostring的字段。
(3) @Cleanup: 用于确保已分配的资源被释放,如IO的连接关闭。
(4) @NonNull: 用在成员方法或者构造方法的参数前面,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常。
(5)@Value: 从配置文件读取值。

【lombok】Lombok详解(日志记录和简化代码)相关推荐

  1. Lombok 使用详解,简化 Java 编程

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者 | 日拱一兵 来源 | 公众号(日拱一兵) 在 Java 应 ...

  2. java lombok 视频_Java开发神器Lombok使用详解

    最近正在写SpringBoot系列文章和录制视频教程,每次都要重复写一些Getter/Setter.构造器方法.字符串输出的ToString方法和Equals/HashCode方法等.甚是浪费时间,也 ...

  3. 【SpringBoot-3】Lombok使用详解

    Lombok使用详解 Lombok简介 Lombok安装 Lombak使用 @Data @Setter&@Getter @Builder @NonNull @Log4j @AllArgsCon ...

  4. Lombok使用详解

    Lombok使用详解 前言 在Java中,封装是一个非常好的机制,最常见的封装莫过于get,set方法了,无论是Intellij idea 还是Eclipse,都提供了快速生成get,set方法的快捷 ...

  5. marlin2.0.5.4配置详解——个人记录

    marlin2.0.5.4配置详解--个人记录 串口波特率 主板类型 挤出机数量 混色打印 温度传感器 最大温度 挤出机保护 双轴联动结构 限位开关上拉 限位开关信号 电机使能信号 禁用电机 电机运动 ...

  6. php中的装饰,详解PHP装饰模式的示例代码

    详解PHP装饰模式的示例代码<?php // 装饰模式 function echoLine($msg) { echo $msg, ' '; } class RequestHelper { /** ...

  7. java lombok.getter_详解lombok @Getter @Setter 使用注意事项

    前言:半夜睡不着觉,把星星哼成歌,只好到csdn寻找另一个梦境..... lombok是一个帮助简化代码的工具,通过注解的形式例如@Setter @Getter,可以替代代码中的getter和sett ...

  8. postgres预写式日志的内核实现详解-wal记录读取

    2019独角兽企业重金招聘Python工程师标准>>> 导读: postgres预写式日志的内核实现详解-概述 之前已经写了关于wal记录的结构.wal记录的写入的博客,流复制.PI ...

  9. 2.lombok系列2:lombok注解详解

    转自:https://www.imooc.com/article/18157 开篇 看到第一篇<初识lombok>你可能意犹未尽,本文我们按照场景来介绍一下常用的注解. 未特别说明,均标注 ...

最新文章

  1. lucene构建同义词分词器
  2. 正则表达式下——相关方法
  3. QT的QAxFactory类的使用
  4. python 爬取网页内容 snmp_python通过SNMP协议收集服务器监控信息
  5. Perl Fork的问题
  6. java根据数据库自动生成代码
  7. 给tftp服务器传文件,袖针文件传输服务器Tftpd32
  8. NOIP / CSP-S/J初赛基础知识1
  9. Python 防止反编译
  10. 《决战大数据》读书笔记(一) 收集数据和使用数据要有关联
  11. 大神f1 刷原生android,兼容多种ROM包 酷派大神F1堪称刷机神器
  12. webRTC H265浏览器播放器+metaRTC推流实现webRTC H265解决方案
  13. Airbnb短租数据分析报告
  14. 2018上半年最有价值科技类的微信公众号有哪些?
  15. Python实现常见泛洪攻击
  16. Cocos Creator 开发实战——篮球物理游戏
  17. Codeforces 13C
  18. OpenCV实现PS2018中的SmartBlur美颜算法
  19. 记录java围棋小游戏心得
  20. 2021年全球与中国3D和虚拟现实行业市场规模及发展前景分析

热门文章

  1. 区块链开发(十二)公有链、联盟链、私有链及网络配置介绍
  2. 热烈祝贺致欧家居获2022 IDC中国未来企业大奖「未来数字基础架构领军者优秀奖」
  3. 3ds max导出fbx模型出现破裂
  4. 216 组合总和 III(递归)
  5. 各路高手谈谈手工焊接贴片元件的方法、经验
  6. RDS认证辅导,如何申请RDS认证,RDS认证的模块由哪些部分组成
  7. 淘宝天天特价返回值说明
  8. 网络基础知识(CCNA)
  9. PCL 点读机,哪里不会查哪里!
  10. php怎么套入div,thinkphp里面怎么实现弹出div并传到后台可以存进数据库,望大神帮助。...