首页 > 其他分享 >支持多级别日志消息

支持多级别日志消息

时间:2023-09-18 22:02:49浏览次数:30  
标签:文件 写入 支持 线程 日志 级别

1、项目介绍

本项目主要实现一个日志系统,其主要支持以下功能:

  • 支持多级别日志消息

将日志分为不同等级的日志,有调试级别的日志、提示级别的日志、警告级别的日志、错误级别的日志、致命级别的日志……不同级别的日志应对着不同的场景。可以通过日志级别来实现限制输出的级别:当调试时候可以规定打印调试级别以上的日志信息,方便调试;当发布之后可以设置成输出错误级别以上的日志信息,这样能够使定位更加明确,分析更快速准确。

  • 支持同步日志和异步日志

同步日志就是将日志写入到文件/数据库这个操作由业务线程自己来完成;异步日志就是指业务线程将日志放到内存中,并不由业务线程将日志写入到文件/数据库(避免因为文件/数据库问题使业务线程卡在这里,不能执行下面的业务),而是由其他的工作线程将日志写入到文件/数据库,进行实际的输出。

  • 支持可靠写入日志到控制台、文件以及滚动文件中

支持日志消息的不同落地方向,可以将这条消息进行打印、或写入到指定的文件中、或写入到滚动文件中(滚动文件是指当日志信息写入到一个文件中,当这个文件达到指定的大小(也可以是指定的日期)之后切换到下一个文件写入)。

  • 支持多线程程序并发写日志

是一个线程安全的日志系统,当两个线程同时通过日志器来同时写入到同一个文件中时,交叉写入会引发线程安全的问题。要实现的日志系统会解决上面的问题,系统是线程安全的,就算是多个线程同时写也不会出现数据二义的情况。

  • 支持扩展不同的日志落地目标地

可以将日志写入到数据库、或者云服务器中的日志分析服务器中等,支持自定义落地方向。

标签:文件,写入,支持,线程,日志,级别
From: https://blog.51cto.com/u_15562309/7516465

相关文章

  • MySQL三大日志(binlog、redo log和undo log)详解
    硬核干货!一文掌握binlog、redolog、undolog(qq.com)MySQL日志:undolog、redolog、binlog(qq.com)MySQL三大日志(binlog、redolog和undolog)详解|JavaGuide(Java面试+学习指南)MySQL日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其......
  • MySQL事务隔离级别详解
    MySQL事务隔离级别详解|JavaGuide(Java面试+学习指南)事务隔离级别总结SQL标准定义了四个隔离级别:READ-UNCOMMITTED(读取未提交):最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。READ-COMMITTED(读取已提交):允许读取并发事务已经提交的数......
  • 畅购商城学习日志9
    nestedexceptionisorg.apache.ibatis.exceptions.PersistenceException:\r\n###Errorqueryingdatabase.Cause:org.springframework.jdbc.CannotGetJdbcConnectionException:FailedtoobtainJDBCConnection;nestedexceptioniscom.mysql.cj.jdbc.exceptions......
  • 支持向量机(SVM)案例分析
    支持向量机(supportvectormachines,SVM)是一种二分类模型,所谓二分类模型是指比如有很多特征(自变量X)对另外一个标签项(因变量Y)的分类作用关系,比如当前有很多特征,包括身高、年龄、学历、收入、教育年限等共5项,因变量为‘是否吸烟’,‘是否吸烟’仅包括两项,吸烟和不吸烟。那么该5个特......
  • 《安富莱嵌入式周报》第301期:ThreadX老大离开微软推出PX5 RTOS第5代系统,支持回流焊的
    祝大家开工大吉视频版:https://www.bilibili.com/video/BV1GT411o7zr1、ThreadX老大离开微软,开发的第5代RTOS系统PX5RTOS正式上线最早是看到IAR的一条消息,全面支持PX5RTOS,然后就进一步上他们的官方下载白皮书了解相关消息当看到这两个名字时,很熟悉,这不就是ThreadX的老大BillLamie......
  • edge浏览器打开pdf支持备注
    问题中文版本不支持,添加便签及备注(功能被弱化)解决edge切换语言到英文即可正常使用pdf阅读功能edge://settings/languagesrestartedge......
  • Qt + mupdf 显示PDF,支持翻页
    使用Qt+mupdf实现PDF阅读器,支持翻页(上一页、下一页) 思路:PDF阅读器:使用mupdf,将PDF文件拆分成单个page页,将page页转为QImage图像,使用QListWidget来装载所有的QImage,这样Qt就可以显示出所有图像(完整的PDF)。翻页:根据滚动条,确认当前是哪一页,然后实现【上一页、下一页】功能 ......
  • 通过Sysmon+Nxlogs收集Windows Server 2012服务器日志-并以Syslog形式发送Json格式数
    0x01环境介绍WindowsServer2012已经安装部署好了域控,目的除了收集Windows服务器本身的日志外还收集域控环境下的各种日志。0x02Nxlog配置和使用使用社区版本即可,下载地址:https://nxlog.co/downloads/nxlog-ce#nxlog-community-edition使用的版本是当前最新版本安装过程就省略,......
  • 亚马逊云科技Amazon CodeWhisperer支持15种变种语言,为代码提供个性化建议
    AmazonCodeWhisperer介绍 AmazonCodeWhisperer是亚马逊云科技出品的一款基于机器学习的通用代码生成器,可实时提供代码建议。类似Cursor和GithubCopilot编码工具。在编写代码时,它会自动根据您现有的代码和注释生成建议。从单行代码建议到完整的函数,它可为您提供各种大小和范围的......
  • MySQL实战实战系列 02 日志系统:一条SQL更新语句是如何执行的?
    前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听DBA同事说,MySQL可以......