参照spdlog,简单梳理相关的要求。

概念
常见的概念,如下:

  • 开发时日志级别,仅在Debug构建时生成的日志,通过宏可以实现。常见的级别有:

    • TRACE
    • DEBUG
    • INFO
    • WARN
    • ERROR
  • 运行时日志级别,在DebugRelease构建时均需生效。常见的级别有:
    • DEBUG
    • INFO
    • WARN
    • ERROR
    • FATAL
  • 日志记录器,日志对象,用于记录日志。
  • 日志记录的格式
    • 预定义的关键信息,比如:

      • 日志记录的时间
      • 日志所在的源文件和代码行号
      • 记录日志时运行线程的线程号
    • 用户自定义的关键信息,可以采用类似printf的格式控制字符。
  • 日志存储
    • 控制台,比如

      • std,标准输出流
      • stderr,标准错误输出流
    • 文件
    • 网络存储
      • Unix系统的syslog
      • Windows系统的event log
    • 数据库

配置项

目的是控制应用程序的日志级别,以及不同日志记录器的日志级别。
配置数据可行的来源,比如有:

  • 环境变量
  • 命令行参数
  • 配置文件

基本要求

  • 集成简单,比如头文件。
  • 使用简单,学习成本低。
  • 支持多种平台,比如Linux、安卓、Windows等。
  • 支持多线程。
  • 支持多种存储方式。
  • 支持多种输出目标。
  • 高性能,调用时延低。
  • 低资源占用,CPU、内存占用低。

高阶特性

  • 日志文件管理策略

    • 固定时间转储,比如按小时、按天来生成日志文件。
    • 固定文件个数转储,比如保留固定的几个日志文件,避免日志文件大量占用硬盘。
    • 固定文件大小转储,控制单个日志文件的大小,避免单个日志文件过大,影响后续阅读。
  • 日志的事件处理。
  • 记录调用栈。
  • 支持用户对象的序列化。

应用软件的日志系统的设计要求相关推荐

  1. 通用日志系统开发【转】

    1.前言 中大型软件项目中,日志系统是不可或缺的组成部分.尤其随着软件规模越来越大,内部结构越来越复杂,日志调试成为一种重要的调试方法.本文介绍了一个通用,高效,简洁的日志系统的设计思路. 文章分两部 ...

  2. linux 任务计划 权限设置,Linux系统 文件权限+计划任务+日志系统

    实验目的:熟练掌握权限相关概念和具体操作 实验环境:Red Hat Enterprise Linux Server 5.3 实验步骤: 一.文件权限 二.计划任务 三.日志 一.文件权限 (一)基本权 ...

  3. 日志系统新贵Loki,确实比笨重的ELK轻

    来自:CSDN(作者:linkt1234) 原文链接: https://blog.csdn.net/Linkthaha/article/details/100575278 最近,在对公司容器云的日志方 ...

  4. cx_oracle写日志信息_日志系统的设计

    笔者在写作本章节的时候,并不敢把此章节的标题叫做<高性能日志系统的设计>,之所以不敢加上"高性能"三个字的原因是: 第一,我对于日志系统设计知识和经验都来自于学习和工作 ...

  5. 抛弃ELK!Loki日志系统详解!

    背景 最近,在对公司容器云的日志方案进行设计的时候,发现主流的ELK或者EFK比较重,再加上现阶段对于ES复杂的搜索功能很多都用不上最终选择了Grafana开源的Loki日志系统,下面介绍下Loki的 ...

  6. 百亿级日志系统架构设计及优化

    作者:杨津萍,大数据架构师,从业十余年,专攻 Web 架构及大数据架构. 来自:51cto技术栈(ID:blog51cto) " 日志数据是最常见的一种海量数据,以拥有大量用户群体的电商平台 ...

  7. PHP框架中的日志系统

    引言 接触过php框架的朋友们可能都知道,日志在项目中的重要作用了,他可以帮助我们定位错误的位置,让程序更友好(处理得当的话不会直接抛出一大堆只有程序猿才真正动的英文),调试的时候也会很方便,还可以记 ...

  8. 软件架构自学笔记-- 畅途亿级业务日志系统演变过程

    畅途亿级业务日志系统演变过程 原文链接:https://www.infoq.cn/article/xWlmaS0-rdIjUgNrTjGI 痛点 你是否遇到过如下情况:线上偶尔出现一个问题,但我们并不 ...

  9. 几十条业务线日志系统如何收集处理?

    在互联网迅猛发展的今天 各大厂发挥十八般武艺的收集用户的各种信息,甚至包括点击的位置,我们也经常发现自己刚搜完一个东西,再打开网页时每个小广告都会出现与之相关联的商品或信息,在感叹智能的同时不惊想 什 ...

最新文章

  1. 不可思议!乌克兰国防军队的系统账密居然是 admin 和 123456...
  2. 不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常
  3. vCenter 6.0安装部署
  4. SpringMVC学习笔记
  5. dbunit使用_摆脱困境:在DbUnit数据集中使用空值
  6. ppt计算机控制系统实例,第部分计算机控制系统的应用实例.ppt
  7. php 伸展菜单代码,上下伸展的JS菜单
  8. 数组模拟加法(每日一练 11.30)
  9. Android RxJava和改造
  10. 一键获取喜马拉雅音频文件(Python3爬虫)
  11. 什么是PID,PID的作用。
  12. 团队建设的不同阶段与管理方式
  13. 我是ASML,除了技术,还有故事
  14. 解决 Missing GL version
  15. HashTab-查看哈希值小工具,一键插件文件md5值
  16. 毕业设计-基于大数据招聘岗位可视化系统-python
  17. JDK9-JDK17新特性总结
  18. 【快速检索,稳定出版,强大委员会Speaker阵容】ICCCS 2022|第7届通信计算机大会
  19. xdoj试题 字符串压缩
  20. 【数据库】SQL Server索引碎片和解决方法

热门文章

  1. Matlab固有频率不对,matlab固有频率表
  2. 3dsmax 模型创建+原生贴图(多图)
  3. CSS 过度中ease与ease-in-out的区别(ease曲线)
  4. 【单片机】单片机时钟
  5. BOS项目02_02_zTree-通过ajax的获取菜单数据、监听树形菜单的点击事件、读取json文件、Ajax获取数据
  6. java stax_Java学习:使用StAX解析XML
  7. python实现日历功能_python学习笔记之—— calendar(日历)模块
  8. uni-app 入门之 nvue (weex) 爬坑记
  9. 使用\ctexset设置章节标题
  10. “智算中心”,按动着新基建的“快进键”