Spring运维之boot项目开发关键之日志操作以及用文件记录日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Spring运维之boot项目开发关键之日志操作以及用文件记录日志

日志基础

日志

在企业级开发中还是比较重要的

我们来写一个日志

@RestController
@RequestMapping("/books")
public class Controller {
 
    //创建记录日志的对象
    private static final Logger log= LoggerFactory.getLogger(Controller.class);
 
    @GetMapping
    public String getById(){
        System.out.println("Springboot is running");
 
        log.debug("");//调试
        log.info("");//运行
        log.error("");//报错
        log.warn("");//警告
 
        return  "Springboot is runnning";
    }
 
}

我们今后开发都是把写信息到日志里面

而很少采用直接打印输出在控制台的方式

fatal 记录崩溃级别的日志

看不到debug的信息

调试级别

因为debug的级别太低

我们可以开下来

第一种方式

第二种方式

不推荐开下来

因为调成debug级别都是上线后程序员进行调试才会开下来的

我们在以后经常用的一种方式是什么呢?

设置当前根目录下所有日志级别为debug

logging:
  level:
    root: debug

这样打印的日志信息就是DEBUG调试级别的

小结

我们会声明一个记日志的对象

我们也可以设置指定包的日志级别

我们可以设置分组

对某个组设置日志,设置日志级别

我们以后开发大部分用分组来固定日志

创建日志对象

书写BaseClass类

package com.bigdata1421.config.controller;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class BaseClass {
    private Class clazz  ;
    public static Logger log;
    public BaseClass() {
        clazz=this.getClass();
        log=LoggerFactory.getLogger(clazz);
    }
 
}

放在同级目录下

我们可以在子类中使用lombok的注解去实现

去掉注释

我们就不用写BaseClass类了

简化开发

利用lombok提供的注解简化开发 减少日志对象的声明操作

减少日志对象的声明操作

去掉了注解

日志输出格式控制

然而我们也可以控制日志的输出格式

设置日志模版格式

这些操作以后我们在公司中都不会去用

但是如果以后我们做了领头人

就可以让下面的员工都去这样去做

这边写了一个模版

#设置日志模版格式
pattern:
  console: "%d %clr(%5p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"

天下公司一大抄

你抄我我抄你

文件记录日志

我们已经可以控制日志了

接下来我们可以输出打印日志

改天运维问你日志去哪里了

你总不能说日志去了 控制台

然后关掉了

我们要把日志写入文档保存到本地

我们要把日志写入文档保存到本地

我们要把日志写入文档保存到本地

在配置中这样书写就能保存日志

在主文件夹下就能查看到日志文件

我们可以添加其他配置属性设置其他的信息

比如说一天更新一次日志

控制日志的体积

设置最大日志文件的存储大小

logging:
  level:
    root: info
  file:
    name: server.log
  logback:
    rollingpolicy:
      max-file-size: 4KB
      file-name-pattern: server.%d{yyyy.MM.dd}.%i.log

这样打印日志就有日期显示

并且会进行备份

你上线后调试程序

都得靠日志文件了

小结

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
27天前
|
Java Apache 开发工具
【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存
【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存
|
1天前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
|
11天前
|
消息中间件 存储 监控
Kafka的logs目录下的文件都是什么日志?
Kafka的logs目录下的文件都是什么日志?
30 11
|
25天前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
20天前
|
人工智能 Java Spring
Spring框架下,如何让你的日志管理像‘AI’一样智能,提升开发效率的秘密武器!
【8月更文挑战第31天】日志管理在软件开发中至关重要,不仅能帮助开发者追踪问题和调试程序,还是系统监控和运维的重要工具。在Spring框架下,通过合理配置Logback等日志框架,可大幅提升日志管理效率。本文将介绍如何引入日志框架、配置日志级别、在代码中使用Logger,以及利用ELK等工具进行日志聚合和分析,帮助你构建高效、可靠的日志管理系统,为开发和运维提供支持。
27 0
|
26天前
|
监控 Java Serverless
美团 Flink 大作业部署问题之想在Serverless平台上实时查看Spring Boot应用的日志要怎么操作
美团 Flink 大作业部署问题之想在Serverless平台上实时查看Spring Boot应用的日志要怎么操作
|
26天前
【Azure Function & Application Insights】调用Function上传和下载文件,有时候遇见大于1MB的文件的日志没有记录在Application Insights中
【Azure Function & Application Insights】调用Function上传和下载文件,有时候遇见大于1MB的文件的日志没有记录在Application Insights中
|
27天前
|
存储 Java Spring
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
|
27天前
|
Java Linux C++
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑
|
27天前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)