日志入门学习

日志

日志基础

日志作用

  • 编程器调试代码
  • 运营期记录信息
    • 记录日常运营重要信息(峰值流量、平均响应时长……)
    • 记录应用报错信息(错误堆栈)
    • 记录运维过程数据(扩容、宕机、报警……)

代码中使用日志工具记录日志

  1. 添加日志记录操作

    @RestController
    @RequestMapping("/books")
    public class BookController extends BaseClass{
        private static final Logger log = LoggerFactory.getLogger(BookController.class);
        @GetMapping
        public String getById(){
            log.debug("debug...");
            log.info("info...");
            log.warn("warn...");
            log.error("error...");
            return "springboot is running...";
        }
    }
    

    在这里插入图片描述

​ 运行后看控制台会发现一个问题,debug得日志没有出现,这是什么原因?其实是debug得优先级太低,而系统默认级别是info,所以想要看到debug日志还需要添加一些操作

  1. 设置日志输出级别

    日志设置好以后可以根据设置选择哪些参与记录。这里是根据日志的级别来设置的。日志的级别分为6种,分别是:

    • TRACE:运行堆栈信息,使用率低
    • DEBUG:程序员调试代码使用
    • INFO:记录运维过程数据
    • WARN:记录运维过程报警数据
    • ERROR:记录错误堆栈信息
    • FATAL:灾难信息,合并计入ERROR

    ​ 一般情况下,开发时候使用DEBUG,上线后使用INFO,运维信息记录使用WARN即可

    为了出现debug信息,可以在配置文件中添加如下信息

# debug 默认是不开启得,所以改成true就行了
debug: true

​ 这么设置有些简单粗暴了,日志系统通常都提供了细粒度得控制

# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
  level:
  root: debug

root级别是整体应用,我们可以设置范围更小得地方实现日志

logging:
  level:
    root: info
    #设置某个包得日志级别
    com.example.controller: debug

​ 还可以对多个包设置日志级别,一个一个设置太麻烦了,可以将他们分到一个组里面,设置这个组就行了

# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
  #设置分组
  group:
    ebank: com.example.dao,com.example.controller
  level:
    root: info
    #设置某个包得日志级别
#    com.example.controller: debug
    #设置分株:对某个组设置日志级别
    ebank: warn

优化日志对象代码

写代码的时候每个类都要写创建日志记录对象,这个可以优化一下,使用前面用过的lombok技术给我们提供的工具类即可。

  1. 导入lombok坐标
  2. controller添加@Slf4j注解
@Slf4j		//这个注解替代了下面那一行
@RestController
@RequestMapping("/books")
public class BookController{
//    private static final Logger log = LoggerFactory.getLogger(BookController.class);	//这一句可以不写了
}

日志输出格式控制

​ 日志已经能够记录了,但是目前记录的格式是SpringBoot给我们提供的,如果想自定义控制就需要自己设置了。先分析一下当前日志的记录格式。

在这里插入图片描述

对于单条日志信息来说,日期,触发位置,记录信息是最核心的信息。级别用于做筛选过滤,PID与线程名用于做精准分析。

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

日志信息显示,记录已经控制住了,下面就要说一下日志的转存了。日志不能仅显示在控制台上,要把日志记录到文件中,方便后期维护查阅。

​ 记录日志到文件中格式非常简单,设置日志文件名即可。

logging:
	file:
    	name: server.log

​ 设置完后,需要取文件夹中打开找到server.log文件,当服务器没有关的时候,日志里的内容都存在缓冲区里,缓冲区满的时候才会存入文件中,或者服务器停了之后存入文件中

虽然使用上述格式可以将日志记录下来了,但是面对线上的复杂情况,一个文件记录肯定是不能够满足运维要求的,通常会每天记录日志文件,同时为了便于维护,还要限制每个日志文件的大小。下面给出日志文件的常用配置方式:

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

​ 以上格式是基于logback日志技术设置每日日志文件的设置格式,要求容量到达3KB以后就转存信息到第二个文件中。文件命名规则中的%d标识日期,%i是一个递增变量,用于区分日志文件。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值