Core + Vue 后台管理基础框架9——统一日志
1、背景
前阵子有园友留言,提到日志相关的东西,同时,最近圈子里也有提到日志这个东西。一个充分、集中的统一日志平台还是很有必要的,否则系统出问题了只能靠猜或者干瞪眼。何谓充分,日志记录满足最低要求、出问题方便定位、可追溯、可追责,最重要的,方便扯皮;何谓集中,各子系统或服务日志都怼到一个地方,想看日志直接去日志平台去看,且方便检索、聚类,而不是需要每个服务、每台服务器逐个远程去翻扯。这里,就结合项目实践,聊下怎么方便、快捷、低成本的实现统一日志平台。
2、技术栈
.NET CORE + log4net + EFK
.NET CORE自不必说,系统基于.NET CORE的;log4net用于将日志输出到服务器本地;EFK中E(ES)用于存储日志,F(filebeat)用于搜集本地日志发送到远程ES,K(Kibana)用于日志检索。
其中.NET CORE、log4net部分均可自由切换,是系统、能把日志输出到服务器本地即可;EFK则通用。
选择EFK是因为之前监控、PCI认证已经搭建好了ELK环境,这里就直接使用不再重复建设其他平台。
3、log4net配置
红框圈起来部分,[%d]设置输出行首日期部分被中括号([])包围,具体原因我们后文赘述。log4net与.NET CORE的集成很多资料自行查阅。设置完毕,日志本地输出类似如下:
4、filebeat配置
服务器上安装完成filebeat之后,编辑/etc/filebeat/filebeat.yml配置文件:
这里开启了多行日志匹配模式,正如上图的日志输出截图,实际当中一条日志记录占用多行再正常不过,filebeat不做任何设置则会每一行作为作为一条被收割,检索、分析、存储都是个问题。正则表达式代表匹配方括号括起来的时间,比如[2020-08-15 12:00:00],从这里开始只到下一个匹配项之间的部分作为该条日志记录被发送到ES。配置完毕,重启filebeat服务。
5、kibana中效果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?