简历:实现同步/异步日志系统,记录服务器运行状态
一、概述
1、什么是日志系统
记录服务器运行状态、错误信息、访问数据,实现按天分类、超行分类,支持同步、异步。
2、同步/异步日志简要概述
同步日志异步日志区别在于写入操作是否是阻塞的。
同步写入会阻塞当前线程,直到写入操作完成,简单但高并发场景下,会阻塞线程执行。
异步写入,不会阻塞当前线程,而是把写入操作交给另一个线程处理,当前线程继续执行其他任务。
3、实现方式
同步:格式化输出内容,信息写入日志文件
异步:格式化输出内容,信息写入阻塞队列,创建一个写线程,从阻塞队列取出内容写入日志文件
4、日志分级
本项目把日志分成了四个等级:DEBUG、INFO、WARN、ERROR四种级别的日志
DEBUG、WARN都是在调试时使用,实际运行不会打印出现
INFO服务器运行记录
ERROR出现错误
二、比较同步/异步
1、代码中如何判断是同步/异步
通过初始化是否设置阻塞队列大小来判断,0为同步,大于0为异步
三、日志内容
1、日志名
时间+
2、实际日志举例
(1)info:大部分都是info
2023-03-18 14:39:40.042918 [info]: timer tick //时间片 2023-03-18 14:39:41.259188 [info]: deal with the client(192.168.18.1) //记录访问的客户端ip 2023-03-18 14:39:41.259729 [info]: adjust timer once //调整定时器 2023-03-18 14:39:41.259873 [info]: 获得1行http行:GET / HTTP/1.1 //HTTP报文 2023-03-18 14:39:41.260927 [info]: 获得1行http行:Connection: keep-alive //HTTP报文 2023-03-18 14:39:41.260939 [info]: 获得1行http行:Cache-Control: max-age=0 //HTTP报文 2023-03-18 14:39:41.260946 [info]: oop! unknow header Cache-Control: max-age=0 //HTTP报文未知 2023-03-18 15:02:36.823946 [info]: request:HTTP/1.1 200 OK //HTTP响应写入,写入分行 2023-03-18 15:02:36.823963 [info]: request:HTTP/1.1 200 OK //HTTP响应写入,写入分行 Content-Length:586 2023-03-18 15:02:36.823972 [info]: request:HTTP/1.1 200 OK //HTTP响应写入,写入分行 Content-Length:586 Connection:keep-alive 2023-03-18 15:02:36.823979 [info]: request:HTTP/1.1 200 OK //HTTP响应写入,写入分行 Content-Length:586 Connection:keep-alive 2023-03-18 15:02:36.826146 [info]: send data to the client(192.168.18.1) //发送到客户端ip 标签:info,HTTP,18,写入,2023,日志,部分 From: https://www.cnblogs.com/fei1013/p/17281465.html