spdlog学习笔记

学习spdlog的一些记录

项目下载

git clone https://github.com/gabime/spdlog.git

创建异步日志器

void initSpdlog(const std::string& strPath)
{std::string strLogPath = strPath + "/logs/skyense.log";// 异步就一定需要线程或线程池+日志队列,这里给一个线程,队列1024个字节// spdlog::init_thread_pool(1024 , 1);// 创建一个回滚日志,这里使用了工厂,类型是异步工厂,参数:日志名称、路径、文件大小、文件个数// file_logger = spdlog::rotating_logger_mt<spdlog::async_factory>("file_logger", strLogPath , 1024 * 1024 * 5, 5);// 需要输出日志的等级// file_logger->set_level(spdlog::level::info);// spdlog::flush_every(std::chrono::seconds(1));// file_logger->set_pattern("[%n] [%Y-%m-%d %H:%M:%S.%e] [%l] [%t] [%s %!:%#]  %v");// 回收// spdlog::drop_all();//获取某个日志器// spdlog::get("file_logger")->info("loggers can be retrieved from a global");// 异步就一定需要线程或线程池+日志队列,这里给一个线程,队列1024个字节spdlog::init_thread_pool(1024 , 1);auto formatter = std::make_unique<spdlog::pattern_formatter>();auto async_log_sink = std::make_shared<spdlog::sinks::rotating_file_sink_mt>(strLogPath , 1024 * 1024 * 5 , 5);formatter->add_flag<Skyense_formatter_flag>('*').set_pattern("[%*] [%n] [%Y-%m-%d %H:%M:%S.%e] [%l] [%P] [thread %t] [%s %!:%#]  %v");async_log_sink->set_formatter(std::move(formatter));std::vector<spdlog::sink_ptr> sinks;sinks.push_back(std::move(async_log_sink));//auto stdout_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();stdout_sink->set_pattern("[%n] [%Y-%m-%d %H:%M:%S.%e] [%l] [%P] [thread %t] [%s %!:%#]  %v");sinks.push_back(std::move(stdout_sink));//auto logger_skyense = std::make_shared<spdlog::async_logger>("skyense", sinks.begin(), sinks.end() , spdlog::thread_pool());logger_skyense->set_level(spdlog::level::info);logger_skyense->flush_on(spdlog::level::warn);spdlog::flush_every(std::chrono::seconds(3));spdlog::register_logger(std::move(logger_skyense));
}  

使用

直接通过名字获取到日志对象(spdlog创建的时候已经在全局创建,内部通过单例实现)

SPDLOG_LOGGER_ERROR(spdlog::get("skyense"),"Send Sn Arm failed");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1:25万基础电子地图(重庆版)

我们为你分享过四川版、江西版和贵州版的1:25万基础电子地图&#xff0c;现在再为你分享重庆版的电子地图。 现在我们再为你分享重庆的1&#xff1a;25万基础电子地图&#xff0c;你可以在文末查看该数据的领取方法。 基础电子地图重庆版 下载后可以看到该数据由14个压缩包所…

Windows11电脑在使用GPU的时候有时候会卡顿

原来我一直以为是电脑的某些组件可能坏掉了 但是后来发现通过更新gpu的驱动可以让它变好&#xff1a; NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA 下载好以后&#xff0c;然后安装最新的驱动就可以了&#xff0c;感觉可能是因为win11和某些需要显卡的驱动不支持的原因吧 …

2024前端面试准备5-React相关

1. React 事件机制 ​ React并不是直接把事件绑定到div的真实DOM上的&#xff0c;而是在document(>16绑定的document,17开始绑定到root元素&#xff0c;方便微前端处理)处通过事件代理的方式&#xff0c;统一绑定了所有事件&#xff0c;然后根据冒泡上来的事件&#xff0c;…

Flash基础知识

1、Flash发展历程 存储器通常分为两类型&#xff0c;即随机存取的RAM&#xff08;内存&#xff09;与只读的ROM&#xff08;外存&#xff09;。 RAM&#xff0c;也称随机存取存储器&#xff0c;数据可以被读取和修改。它主要用于存储正在运行的程序和临时数据&#xff0c;是计…

redis穿透解决方案

Redis缓存穿透是指查询一个不存在于数据库中的数据&#xff08;通常是恶意用户发起的连续请求&#xff09;&#xff0c;由于缓存中没有&#xff0c;每次请求都会穿透到数据库&#xff0c;这可能会对数据库造成不必要的压力。解决缓存穿透问题的常见策略包括&#xff1a; …

CarService的构成和初始化分析

以下分析&#xff0c;基于安卓13的AAOS。 代码构成 packages/services/Car CarService相关代码&#xff0c;主要是在这个目录下 frameworks/opt/car/services 主要是carservice启动相关。 其它目录&#xff1a;audio_policy_configuration.xml和car_audio_configuration.xm…

Unity Texture2D读取像素时出错问题

Texture2D在读取像素处理时&#xff0c;经常会出错&#xff0c;这个时候可以用如下函数先转换&#xff1a; public Texture2D DeCompress(Texture2D source){RenderTexture renderTex RenderTexture.GetTemporary(source.width,source.height,0,RenderTextureFormat.Default,R…

leetcode-12-[226]翻转二叉树[101]对称二叉树[104]二叉树的最大深度[111]二叉树的最小深度

前置知识&#xff1a; 深度&#xff1a;任意节点到根节点的节点数 高度&#xff1a;任意节点到叶子节点&#xff08;左右孩子都为空&#xff09;的节点数 一、[226]翻转二叉树 重点&#xff1a;交换节点应该传入根节点 class Solution {public TreeNode invertTree(TreeNo…

JSON学习

一、JSON 1.1 简介 JSON&#xff1a;JavaScript Object Notation是一种表示对象的方式 基于JavaScript语言的轻量级的数据交换格式;&#xff08;即:用来传输数据的一种格式&#xff09; 现在传输数据的方式更多是采用json的格式&#xff0c;渐渐代替了XML 1.2 JSON的数据表示 …

人生的乐趣,在于对真知的追求

子曰&#xff1a;朝闻道&#xff0c;夕死可矣&#xff01; 孔子说&#xff1a;早上听到关于世界的真理&#xff0c;哪怕晚上就die了都可以。 这句话很有力量而经常被人引用&#xff0c;表达出我们如何看待沉重的肉身和精神世界。 我们的生活目的&#xff1a;道。 —— 要了解…

MongoDB查询

一、find 1、简单查询 #查寻所有文档 >db.foo.find()#查询包含namehgq的文档 >db.foo.find({"name":"hgq"}) #查询包含namehgq&#xff0c;age12的文档&#xff0c;默认为全部条件都匹配 >db.foo.find({"name":"hgq","…

探究 IP 地址被网站封禁的原因

在我们登录各种网站、APP浏览时&#xff0c;可能会遇到 IP 地址被某些网站封禁的情况。很多人奇怪这是为什么呢&#xff1f; 首先&#xff0c;违反网站的使用规则是比较常见的原因之一。比如&#xff0c;频繁发送垃圾邮件、恶意评论、进行网络攻击或试图破解网站的安全机制等不…

数据链路层知识分享【计算机网络】【以太网帧 | MTU的影响 | ARP技术】

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 前文 一&#xff0c; 以…

【操作系统】操作系统课后作业-聊天程序

无名管道与有名管道的区别 无名管道&#xff1a; 它是半双工的&#xff0c;具有固定的读端和写端。 只能用于具有亲缘关系的进程之间的通信&#xff08;也是父子进程或者兄弟进程之间&#xff09;。 不是普通的文件&#xff0c;不属于其他任何文件系统&#xff0c;并且只存…

Electron+Vue开源软件:洛雪音乐助手V2.8畅享海量免费歌曲

洛雪音乐助手是一款功能全面且完全免费的开源音乐软件&#xff0c;支持在Windows、Android和iOS平台上使用。 平台支持&#xff1a; 桌面版&#xff1a;采用Electron Vue技术栈开发&#xff0c;支持Windows 7及以上版本、Mac OS和Linux&#xff0c;具有广泛的用户群体覆盖。 …

深信服终端安全管理系统EDR版本升级过程

EDR当前版本为3.7.12&#xff0c;具体参考版本详情参数。需要升级到6.0.2R1版本&#xff0c;该版本更改了产品名称&#xff0c;叫做“统一端点安全管理系统aES” 当前版本详情 版本基础信息 软件版本&#xff1a;3.7.12.3829 病毒库版本&#xff1a;20240618174426 漏洞规则库&…

【安全边界】

1.安全边界是什么 安全边界是具有不同安全要求或需求的任意两个区域、子网或环境之间的交叉线。它存在于高安全性区域和低安全性区域之间&#xff0c;例如局域网&#xff08;LAN&#xff09;和互联网&#xff08;Internet&#xff09;之间。 2.为什么要建设安全边界 安全边界…

PHP入门教程5:会话管理和数据库操作

PHP入门教程5&#xff1a;会话管理和数据库操作 在前几篇文章中&#xff0c;我们学习了PHP的基础语法、控制结构、函数的使用、数组和字符串的操作&#xff0c;以及文件处理和表单处理。本文将重点介绍PHP中的会话管理和数据库操作&#xff0c;这是构建动态网站和Web应用程序的…

java.sql.Timestamp用法总结

java.sql.Timestamp用法总结 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 概述 java.sql.Timestamp是Java中表示日期和时间的类&#xff0c;它继承自jav…

定制化物联网设备:开启智能生活新篇章

随着科技的进步&#xff0c;物联网&#xff08;IoT&#xff09;已成为我们日常生活和工作中不可或缺的一部分。从智能家居到工业自动化&#xff0c;物联网设备以其独特的功能和特性&#xff0c;极大地提高了我们的生活质量和工作效率。然而&#xff0c;在众多的物联网设备中&am…