南山网站建设-信科网络wordpress前台英文后台中文

pingmian/2025/10/9 11:24:32/文章来源:
南山网站建设-信科网络,wordpress前台英文后台中文,网站开发是先做前段还是后台,网站建设公司网络服务#x1f4df;作者主页#xff1a;慢热的陕西人 #x1f334;专栏链接#xff1a;C基于多设计模式下的同步异步日志系统 #x1f4e3;欢迎各位大佬#x1f44d;点赞#x1f525;关注#x1f693;收藏#xff0c;#x1f349;留言 主要内容实现了日志代码设计的实… 作者主页慢热的陕西人 专栏链接C基于多设计模式下的同步异步日志系统 欢迎各位大佬点赞关注收藏留言 主要内容实现了日志代码设计的实用类设计日志等级设计日志消息类设计。 文章目录 C基于多设计模式下的同步异步日志系统day21.日志系统框架设计1.1模块划分1.2模块关系图 2.代码设计2.1实用类设计2.2日志等级类设计2.3日志消息类的设计 C基于多设计模式下的同步异步日志系统day2 1.日志系统框架设计 本项⽬实现的是⼀个多⽇志器⽇志系统主要实现的功能是让程序员能够轻松的将程序运⾏⽇志信息落地到指定的位置且⽀持同步与异步两种⽅式的⽇志落地⽅式。项⽬的框架设计将项⽬分为以下⼏个模块来实现。 1.1模块划分 ⽇志等级模块对输出⽇志的等级进⾏划分以便于控制⽇志的输出并提供等级枚举转字符串功能。 OFF:关闭DEBUG:调试调试时的关键信息输出INFO:提示普通的提示性日志信息WARN:警告不影响运行但是需要注意一下的日志ERROR:错误程序运行出现错误的日志FATAL:致命一般是代码异常导致程序无法继续推进的运行的日志 日志消息模块中间存储日志输出所需的个各项要素信息 时间描述本条日志的输出时间线程ID描述本条日志是哪个线程输出的日志等级描述本条日志的等级日志数据本条日志的有效载荷数据日志文件名描述本条日志在哪个源码文件中输出的日志行号描述本条日志在源码文件的哪一行输出的 ⽇志消息格式化模块设置⽇志输出格式并提供对⽇志消息进⾏格式化功能 系统的默认⽇志输出格式%d{%H:%M:%S}%T[%t]%T[%p]%T[%c]%T%f:%l%T%m%n-13:26:32 [2343223321] [FATAL] [root] main.c:76套接字创建失败\n%d{%H:%M:%S}表⽰⽇期时间花括号中的内容表⽰⽇期时间的格式%T表⽰制表符缩进%t表⽰线程ID%p表⽰⽇志级别%c表⽰⽇志器名称不同的开发组可以创建⾃⼰的⽇志器进⾏⽇志输出⼩组之间互不影响%f表⽰⽇志输出时的源代码⽂件名%l表⽰⽇志输出时的源代码⾏号%m表⽰给与的⽇志有效载荷数据%n表⽰换⾏设计思想设计不同的⼦类不同的⼦类从⽇志消息中取出不同的数据进⾏处理 ⽇志消息落地模块决定了⽇志的落地⽅向可以是标准输出也可以是⽇志⽂件也可以滚动⽂ 件输出… 标准输出表⽰将⽇志进⾏标准输出的打印⽇志⽂件输出表⽰将⽇志写⼊指定的⽂件末尾滚动⽂件输出当前以⽂件⼤⼩进⾏控制当⼀个⽇志⽂件⼤⼩达到指定⼤⼩则切换下⼀个⽂件进⾏输出后期也可以扩展远程⽇志输出创建客⼾端将⽇志消息发送给远程的⽇志分析服务器设计思想设计不同的⼦类不同的⼦类控制不同的⽇志落地⽅向 ⽇志器模块 此模块是对以上⼏个模块的整合模块⽤⼾通过⽇志器进⾏⽇志的输出有效降低⽤⼾的使⽤难度包含有⽇志消息落地模块对象⽇志消息格式化模块对象⽇志输出等级 ⽇志器管理模块 为了降低项⽬开发的⽇志耦合不同的项⽬组可以有⾃⼰的⽇志器来控制输出格式以及落地⽅向因此本项⽬是⼀个多⽇志器的⽇志系统管理模块就是对创建的所有⽇志器进⾏统⼀管理。并提供⼀个默认⽇志器提供标准输出的⽇志输出 异步线程模块 实现对⽇志的异步输出功能⽤⼾只需要将输出⽇志任务放⼊任务池异步线程负责⽇志的落地输出功能以此提供更加⾼效的⾮阻塞⽇志输出 1.2模块关系图 2.代码设计 2.1实用类设计 提前完成⼀些零碎的功能接⼝以便于项⽬中会⽤到 获取系统时间判断⽂件是否存在获取⽂件的所在⽬录路径创建⽬录 /*实用工具类的实现1.获取系统时间2.判断文件是否存在3.获取文件所在路径4.创建目录 */#includeiostream #includectime #includeunistd.h #includesys/stat.hnamespace xupt {namespace util{class Date{public:static size_t GetTime(){return (size_t)time(nullptr);} };class File{public:static bool exist(const std::string pathname){//确保平台移植性我们不是用这个接口//return (access(pathname.c_str(), F_OK) 0); //F_OK,文件存在且权限允许返回0struct st;if(stat(pathname.c_str(), st) 0){return false;}return true;}static std::string path(const std::string pathname){size_t pos pathname.find_last_of(/\\); /*从路径字符串的后面开始寻找第一个/或者\ */if(pos std::string.npos) return .; //如果没有找到那么证明这个文件就在当前的目录return pathname.substr(0, pos 1); //输出包含最后一个/的位置的字符串}static void CreateDirectory(const std::string pathname){size_t pos 0, idx 0;while(idx pathname.size()){pos pathname.find_first_of(/\\); //寻找第一个/或者\if(pos std::string.npos){mkdir(pathname, 0777); //如果没有分隔符那么就直接创建并且设置权限为0777}std::string parent_dir pathname.substr(0, idx pos 1); //截取包含从开始到/的父目录if(exist(parent_dir) true) { idx pos 1; continue; } //如果当前的目录存在了那么就跳过去找下一个mkdir(parent_dir, 0777);idx pos 1;}}};} }2.2日志等级类设计 ①日志等级总共分为7个等级分别为 UNKNOW表示未知错误DRBUG进⾏debug时候打印⽇志的等级INFO打印⼀些⽤⼾提⽰信息WARN打印警告信息ERROR打印错误信息FATAL打印致命信息-导致程序崩溃的信息OFF关闭所有日志输出 每一个项目中都会设置一个默认的日志输出等级只有输出的日志等级大于等于默认限制等级的时候才可以进行输出 ②提供一个接口将对应等级的枚举转换为一个对应的字符串。 /*1.定义枚举类枚举出日志等级2.提供转换接口:将枚举转换为对应字符串 */ #ifndef __M_LEVEL_H__ #define __M_LEVEL_H__namespace xupt {class LogLevel{public:enum class value{UNKOWN 0,DEBUG,INFO,WARN,ERROR,FATAL,OFF};static const char* toString(LogLevel::value level){switch (level){case LogLevel::value::DEBUG: return DEBUG;case LogLevel::value::INFO: return INFO;case LogLevel::value::WARN: return WARN;case LogLevel::value::ERROR: return ERROR;case LogLevel::value::FATAL: return FATAL;case LogLevel::value::OFF: return OFF;}return UNKOWN;}}; }#endif 2.3日志消息类的设计 ⽇志消息类主要是封装⼀条完整的⽇志消息所需的内容其中包括⽇志等级、对应的loggername、打 印⽇志源⽂件的位置信息包括⽂件名和⾏号、线程ID、时间戳信息、具体的⽇志信息等内容 定义日志消息类进行日志中间信息的存储:1.日志的输出时间 用于过滤日志输出时间2.日志等级 用于进行日志过滤分析3.源文件名称 4.源代码行号 用于定位出现错误的代码位置5.线程ID 用于过滤出错的线程6.日志主体消息7.日志器名称 (当前支持多日志器的同时使用) */ #ifndef __M_MESSAGE_H__ #define __M_MESSAGE_H__#includeutil.hpp #includelevel.hpp #includeiostream #includestring #includethreadnamespace xupt {struct LogMsg{size_t _ctime; //日志产生的时间LogLevel::value _level; //日志等级size_t _line; //行号std::thread::id _tid; //线程idstd::string _file; //文件名std::string _logger; //日志器名称std::string _payload; //有效消息处理//对应的构造函数LogMsg(LogLevel::value level,size_t line,std::string file,std::string logger,std::string msg):_ctime(util::Date::now()),_level(level),_line(line),_tid(std::this_thread::get_id()),_file(file),_logger(logger),_payload(msg){}};}#endif到这本篇博客的内容就到此结束了。 如果觉得本篇博客内容对你有所帮助的话可以点赞收藏顺便关注一下 如果文章内容有错误欢迎在评论区指正

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

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

相关文章

电商网站项目静海网站建设

​ 在这个繁忙的时代,简单而高效的工具成为生活和工作中的宝贵助手。以下是五款小巧而实用的小工具,或许正是你所需的生活小搭档。 1.远程终端——MobaXTerm ​ MobaXTerm是一款集成了多种网络工具的远程终端软件,可以通过SSH、Telnet、RDP…

个人音乐网站开发优秀界面设计作品

目前流行的各类前端框架,不管是react, angular还是vue,都有一个共同点,那就是支持组件化开发,但事实上随着浏览器的发展,现在浏览器也原生支持组件式开发,本文将通过介绍Web Components 的三个主要概念&…

网站开发工资高么怎样下载黑龙江人社app

30分钟快速搭建移动应用直传服务 背景 这是一个移动互联的时代。手机APP上传的数据会越来越多。把数据存储的问题交给OSS, 让开发者能更加专注于自己的应用逻辑。 那么怎么样基于OSS构建一个APP存储系统呢? 目的 本教程就是让你在30分钟内搭建一个基于OS…

怎么做查询网站做网站编辑需要学什么

public class Test{public static void main(String[] args){Person p new Person();} } /* 4.修饰的变量是一个常量(所有字符都大些 XXX 或者 XXX_XXX),只能赋值一次!final 固化的都是显示初始化的值(定义并初始化)(或者构造函数中的特定初始化的值&am…

绿色风格网站浙江自己如何做网站

文章目录 一:Dubbo注册中心引言 1:什么是Dubbo的注册中心? 2:注册中心关系图解 3:引入注册中心服务执行流程 4:Dubbo注册中心好处 5:注册中心核心作用 二:注册中心实现方案 …

金色财经网站开发视频网站 界面设计

编者按:1991年微软研究院成立,三十年坚持不懈的探索成就了微软研究院今天在全球计算机科研领域的位置。在接下来的10年、30年中,科研世界会呈现何种面貌?下一个技术创新的突破点在哪里?微软又将怎样持续发挥作用&#…

创建网站的好处怀化seo快速排名

目录 1 创建用户数据源2 实现登录逻辑3 搭建登录页面4 设置登录框5 实现登录的逻辑6 用户注册总结 原来产品在创建应用的时候可以创建模型应用,模型应用对应我们小程序的后端。最新的更新已经将模型应用的能力下线,那我们不得不自己实现一下后端的逻辑。…

wordpress文本温州seo方法

效果演示 实现了一个登录注册页面的切换效果,当用户点击登录或注册按钮时,会出现一个叠加层,其中包含一个表单,用户可以在表单中输入用户名和密码,然后点击提交按钮进行登录或注册。当用户点击返回按钮时,会…

组装电脑报价网站源码单页面网站怎么做的

正题 题目链接:https://www.luogu.com.cn/problem/CF708E 题目大意 有n∗mn*mn∗m的矩形网格,然后每次每行最左边和最右边的格子各有pcdp\frac{c}{d}pdc​的概率会消失,进行kkk次。 求最后所有格子依旧四联通的概率,在%(1097)\%(10^97)%(1…

上海国外网站建设python怎么开发网站

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 示例 1 输入:nums [3,2,3] 输出:[3]示例 2 输入:nums [1] 输出&…

网站建设官网怎么收费文化传媒 网站设计

如果你将跑在Windows下的项目(如:php、html)迁移到Linux下,由于Windows操作系统中,文件名是不区分大小写的;而Linux系统是大小写敏感,会导致有些网页出现404情况。 解决方法有大概4种: 1、 url rewrite 2、…

吴江市中云建设监理有限公司网站wordpress无法访问图片

火星探索:技术挑战与前沿进展 一、引言 火星,这颗红色的星球,长久以来一直吸引着人类的目光。随着科技的飞速发展,火星探索已经从纯粹的科幻梦想逐渐转变为现实的研究课题。然而,火星探索仍然面临着诸多技术挑战。本文将深入探讨火星探索的关键技术、现有技术瓶颈以及前沿…

做磁性材料在哪些网站推广比较好怎样做网站文件验证

Every day a Leetcode 题目来源:2661. 找出叠涂元素 解法1:哈希 题目很绕,理解题意后就很简单。 由于矩阵 mat 中每一个元素都不同,并且都在数组 arr 中,所以首先我们用一个哈希表 hash 来存储 mat 中每一个元素的…

做黑网站赚钱吗网站开发费入账

今天带来一款十分有趣的地图应用,同样也是在线地图工具,如果我们想要制作此类风格的地图,这款工具定能助我们一臂之力。 按照惯例先给出网址: Dungeon Scrawl | Free Online D&D Map Maker 进入网站,点击Start S…

昆明企业自助建站系统做网站的费用记哪个科目

目录 📋前言 ⛳️【SQL Serverssms】安装 1. SQL Server自定义安装 2. SSMS安装 ⛳️【SQL Server】卸载 📋前言 🌈个人主页:Sarapines Programmer 🔥 系列专栏:本期文章收录在《宝藏工具使用手册》&am…

网站开发开票内容写什么自建橱柜教程

注意安装之前请配置好java 和 Android SDK 1、下载 官网地址: https://developer.android.google.cn/studio/ 点击下载后,需要同意协议: 2、安装 1、双击程序 2、一路 next,如果想修改路径可自行修改。 3、安装完成点击Fi…

做网站的网址是哪里来的经营网站挣钱

2018-07-16 23:59内容来源:2017 年 10 月 20 日,苏宁云商IT总部资深技术经理陈华军在“PostgreSQL 2017中国技术大会”进行《苏宁citus分布式数据库应用实践》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作…

昆山哪家做网站好网站 测速度

华子目录 实验要求实验步骤 实验要求 组建多个子目录网站www.openlab.com,该网站有2个子目录www.openlab.com/sxhkt和www.openlab.com/zywww.openlab.com/sxhkt使用http读取www.openlab.com/zy使用https读取 实验步骤 准备工作 [rootserver ~]# setenforce 0[ro…

自学做网站可以吗竞价推广的基本流程

C是一种功能强大的编程语言,被广泛应用于嵌入式系统的开发和物联网(IoT)应用程序的编写。C具有高性能、灵活性以及强大的硬件控制能力,使其成为嵌入式编程和物联网开发的理想选择。在本文中,我们将讨论C在硬件控制和物…

网站备案包括空间内容吗做网站 域名 最快要多久

paste命令会把每个文件以列对列的方式,一列列地加以合并 ,他就是相当于把两个不同的文件内容粘贴在一起,形成新的文件。注意:paste默认粘贴方式以列的方式粘贴,但是并不是不能以行的方式粘贴,加上-s选项就可…