千家信息网

SpringBoot中Log日志集成的示例分析

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要介绍SpringBoot中Log日志集成的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、日志的分类1、名字分类log4j :log for java (
千家信息网最后更新 2024年11月27日SpringBoot中Log日志集成的示例分析

这篇文章主要介绍SpringBoot中Log日志集成的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    一、日志的分类

    1、名字分类

    • log4j :log for java (因为for和4读音差不多,所以交log4j)

    • logBack 日志说明

    注意:springBoot默认集成了logback日志

    2、日志分类

    根日志:全局日志 rootLogger( springboot的日志级别:info)

    子日志:包日志 logger

    3、日志级别

    OFF=》ERROR=》 WARNING=》INFO(springboot默认)=》DEBUG(mybatis默认级别)=》ALL级别越高输出信息越少

    日志级别由低到高: 日志级别越高输出的日志信息越少

    日志级别使用场景
    DEBUGdebug级别用来记录详细的信息,方便定位问题进行调试,在生产环境我们一般不开启DEBUG
    INFO用来记录关键代码点的信息,以便代码是否按照我们预期的执行,生产环境通常会设置INFO级别
    WARNING记录某些不预期发生的情况,如磁盘不足
    ERROR由于一个更严重的问题导致某些功能不能正常运行时记录的信息
    CRITICAL当发生严重错误,导致应用程序不能继续运行时记录的信息

    二、logback简介

    Logback是由log4j创始人设计的又一个开源日志组件。目前,logback分为三个模块:logback-core,logback-classic和logback-access。是对log4j日志展示进一步改进

    1、 项目中日志分类

    日志分为两类

    一种是rootLogger : 用来监听项目中所有的运行日志 包括引入依赖jar中的日志

    一种是logger : 用来监听项目中指定包中的日志信息

    2、 java项目中使用

    (1) logback配置文件

    logback的配置文件必须放在项目根目录中 且名字必须为logback.xml

                                                 [%p] %d{yyyy-MM-dd HH:mm:ss} %m %n                                        

    (2)具体类中使用日志

    @Controller@RequestMapping("user")public class UserController {    private Logger logger = org.slf4j.LoggerFactory.getLogger(this.getClass());    @RequestMapping("findAll")    public String findAll(String name) {        logger.debug("debug接收的姓名是: "+name);        logger.info("info接收的姓名是: "+name);        logger.warn("warn接收的姓名是: "+name);        logger.error("error接收的姓名是: "+name);        return "index";    }}

    (3)使用默认日志配置

    logging:  level:    root: debug    com.baizhi.dao: debug  path: /Users/whj/aa.log  file: bbb.log

    三、SpringBoot中日志使用

    1、将Springboot的日志默认级别改为debug

    #开启日志 如果级别:off(少)>error>warn>info>debug(多)>alllogging:  level:    root: debug    com.tjcu.controller: debug    com.tjcu.dao: debug

    注意:因为springboot如果使用debug作为日志打印的东西太多了,所以改用info为默认日志级别,但是mybatis等使用的是debug作为默认日志级别,所以我们需要兼顾他的日志隔离级别

    2、SpringBoot项目启动就会有一个默认的日志对象:logger

    先配置 com.tjcu.controller: debug

    #开启日志 logging:  level:    root: debug    com.tjcu.controller: debug

    controller里面使用日志对象

    @Controller@CrossOrigin@ResponseBodypublic class EmpController {    //在控制层定义日志对象    private static final Logger log = LoggerFactory.getLogger(EmpController.class);    @Autowired    private EmpService empService;    @RequestMapping("/emp/queryAll")    public  List queryall(){        List emps = empService.showEmp();        for (Emp emp : emps) {            log.debug(String.valueOf(emp));        }        return emps;    }

    前端访问后

    http://localhost:8080/ems/emp/queryAll

    控制台结果

    四、idea中使用日志插件简化开发

    1、下载Log Support2插件

    2、重启idea

    3、Settings里面会新增一个Log Support目录

    FrameWork框架选择slf4j

    我们为什么要使用slf4j

    我们自己的系统中使用了logback这个日志系统

    我们的系统使用了A.jar,A.jar中使用的日志系统为log4j

    我们的系统又使用了B.jar,B.jar中使用的日志系统为slf4j-simple

    这样,我们的系统就不得不同时支持并维护logback、log4j、slf4j-simple三种日志框架,非常不便。

    slf4j只是一个日志标准,并不是日志系统的具体实现 。理解这句话非常重要,slf4j只做两件事情:

    • 提供日志接口

    • 提供获取具体日志对象的方法

    4、如果直接使用Android的日志会冲突

    5、测试

    logd+enter(回车)后idea自动帮我们添加private static final Logger log1 = LoggerFactory.getLogger(EmpController.class);

    其中d代表debug,i代表info,w代表warn

    @Controller@CrossOrigin@ResponseBodypublic class EmpController {    private static final Logger log= LoggerFactory.getLogger(EmpController.class);    @Autowired    private EmpService empService;    @RequestMapping("/emp/queryAll")    public  List queryall(){        List emps = empService.showEmp();        for (Emp emp : emps) {            log.debug("");            log.info("");            log.warn("");        }        return emps;    }

    6、使用占位的方式书写日志而不用+号拼接

    {}代表占位,一个{}代表占位一个

    @Controller@CrossOrigin@ResponseBodypublic class EmpController {    private static final Logger log= LoggerFactory.getLogger(EmpController.class);    @Autowired    private EmpService empService;    @RequestMapping("/emp/queryAll")    public  List queryall(){        List emps = empService.showEmp();        for (Emp emp : emps) {            log.info("员工的信息 {} {}",emp,"这是占位");        }        return emps;    }

    以上是"SpringBoot中Log日志集成的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

    日志 级别 信息 系统 项目 代表 姓名 对象 分类 配置 运行 示例 分析 代码 内容 名字 插件 文件 框架 环境 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科普什么是网络安全法 国际三大数据库多久交换一次数据 服务器性能监控java开发 简述网络安全的发展现状 手机软件开发培训学校 上海映翰通网络技术有限公司 学校有关网络安全的通知 idc服务器排名2015 数据库的基本表在哪找 惠州导航软件开发 数据库映射存放在哪里 企业可以建立生物多样性数据库 社区公益活动系统数据库er图 国开行苏州软件开发中心地址 华为软件开发云广州创新公司 信息网络安全的维护 苍穹软件连接mdb数据库失败 win 服务器版 登录王者服务器未响应是什么意思 青少年网络安全手抄报无水印 重庆璧山水果软件开发 江西通用软件开发现价 客户达软件开发商 河北金城网络技术有限公司 中山5g网络服务器机柜多少钱 彼岸网络技术服务有限公司 艾莫莉丝服务器 工业软件开发学生该怎么做 计算机网络技术考试成绩 桂阳学it软件开发工资
    0