【lombok】Lombok详解(日志记录和简化代码)
目录
- 前言
- 一.下载 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详解(日志记录和简化代码)相关推荐
- Lombok 使用详解,简化 Java 编程
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者 | 日拱一兵 来源 | 公众号(日拱一兵) 在 Java 应 ...
- java lombok 视频_Java开发神器Lombok使用详解
最近正在写SpringBoot系列文章和录制视频教程,每次都要重复写一些Getter/Setter.构造器方法.字符串输出的ToString方法和Equals/HashCode方法等.甚是浪费时间,也 ...
- 【SpringBoot-3】Lombok使用详解
Lombok使用详解 Lombok简介 Lombok安装 Lombak使用 @Data @Setter&@Getter @Builder @NonNull @Log4j @AllArgsCon ...
- Lombok使用详解
Lombok使用详解 前言 在Java中,封装是一个非常好的机制,最常见的封装莫过于get,set方法了,无论是Intellij idea 还是Eclipse,都提供了快速生成get,set方法的快捷 ...
- marlin2.0.5.4配置详解——个人记录
marlin2.0.5.4配置详解--个人记录 串口波特率 主板类型 挤出机数量 混色打印 温度传感器 最大温度 挤出机保护 双轴联动结构 限位开关上拉 限位开关信号 电机使能信号 禁用电机 电机运动 ...
- php中的装饰,详解PHP装饰模式的示例代码
详解PHP装饰模式的示例代码<?php // 装饰模式 function echoLine($msg) { echo $msg, ' '; } class RequestHelper { /** ...
- java lombok.getter_详解lombok @Getter @Setter 使用注意事项
前言:半夜睡不着觉,把星星哼成歌,只好到csdn寻找另一个梦境..... lombok是一个帮助简化代码的工具,通过注解的形式例如@Setter @Getter,可以替代代码中的getter和sett ...
- postgres预写式日志的内核实现详解-wal记录读取
2019独角兽企业重金招聘Python工程师标准>>> 导读: postgres预写式日志的内核实现详解-概述 之前已经写了关于wal记录的结构.wal记录的写入的博客,流复制.PI ...
- 2.lombok系列2:lombok注解详解
转自:https://www.imooc.com/article/18157 开篇 看到第一篇<初识lombok>你可能意犹未尽,本文我们按照场景来介绍一下常用的注解. 未特别说明,均标注 ...
最新文章
- lucene构建同义词分词器
- 正则表达式下——相关方法
- QT的QAxFactory类的使用
- python 爬取网页内容 snmp_python通过SNMP协议收集服务器监控信息
- Perl Fork的问题
- java根据数据库自动生成代码
- 给tftp服务器传文件,袖针文件传输服务器Tftpd32
- NOIP / CSP-S/J初赛基础知识1
- Python 防止反编译
- 《决战大数据》读书笔记(一) 收集数据和使用数据要有关联
- 大神f1 刷原生android,兼容多种ROM包 酷派大神F1堪称刷机神器
- webRTC H265浏览器播放器+metaRTC推流实现webRTC H265解决方案
- Airbnb短租数据分析报告
- 2018上半年最有价值科技类的微信公众号有哪些?
- Python实现常见泛洪攻击
- Cocos Creator 开发实战——篮球物理游戏
- Codeforces 13C
- OpenCV实现PS2018中的SmartBlur美颜算法
- 记录java围棋小游戏心得
- 2021年全球与中国3D和虚拟现实行业市场规模及发展前景分析