国外优秀的html5网站网站发展趋势

news/2025/10/4 17:49:42/文章来源:
国外优秀的html5网站,网站发展趋势,笋岗网站建设,小江高端企业网站建设日志对于一些大一些的项目来说#xff0c;可以在项目运行出现问题时更好的帮助 项目的维护人员快速的定位到问题出现的地方并且知道出现问题的原因#xff0c; 并且日志也可以帮助程序员很好的进行项目的Debug#xff0c;那么今天我就来实 现一个C编写的一个简单的日志功能。…日志对于一些大一些的项目来说可以在项目运行出现问题时更好的帮助 项目的维护人员快速的定位到问题出现的地方并且知道出现问题的原因 并且日志也可以帮助程序员很好的进行项目的Debug那么今天我就来实 现一个C编写的一个简单的日志功能。1. 简单功能的实现 我的第一步就是先写出一个大致的框架能用就行 现在我们要让它输出消息对于日志来说一个日志一定要有日志的等级日志的时间日志的内容前两点比较容易日志的等级可以使用枚举来表示而日志的时间也很容易对于日志的内容来说可以实现的更加多元化一点这一点可以由用户输出自己想输出的内容所以这里使用了可变参数列表 有人看到这个会不会很熟悉C标准库中的printf好像参数就长这样 我就是想用这样的方式来让用户输入自己想输出的格式然后附带对应参数输出由于输出的参数的个数和类型都不确定所以我们使用可变参数来实现用户的传参。有人就问了那这个可变参数中的参数怎么拿到呢难道我们就这样给printf传过去吗 显然是不行的所以这里就有必要介绍如何获取到可变参数了。 可变参数 C语言针对可变参数做了几个宏以便于用户能够获取到可变参数里的参数 其中关于携带可变参数的函数该函数的可变参数前必须有一个明确类型的参数 原因就是在调用函数之后函数开始运行前要进行压栈以及函数参数的加载而函数参数的加载从右往左的也就是说可变参数前的参数是为了能够方便定位到可变参数的位置。 对于获取可变参数中的参数我们首先需要一个va_list类型的变量其实就是一个指针 然后使用va_start对该变量进行初始化这个宏的第一个参数就是arg第二个参数就是可变参数前面的参数通过va_arg根据顺序和参数类型拿到参数这个顺序和类型都是用户已知的最后使用va_end对arg进行销毁其实就是置空 而对于实现到日志上的可变参数反正我们对这些参数是能够打印出来就行了所以这里再介绍一批接口 可以看到C标准库种有专门的针对va_list变量的打印措施所以对于上面的代码我们也可以这么写 有了上面的准备工作我们就可以继续编写日志代码了 但是我们发现我们无法识别到任务的等级是什么只是一个数字并且我们的时间是一个时间戳不方便进行观察所以这里再次做出优化 关于时间这里再次介绍一个接口 这个接口可以将时间戳转化成一个对应年月日时分秒的结构体 这样这个日志打印出来就比较直观了。 这样的日志是打印在屏幕上但是大多数情况日志是存储在文件中的所以我们的日志要支持自定义式的让用户来决定日志打印到哪里而打印到文件中可能是一个文件也可能是根据日志等级来分开打印所以我们的日志打印又要支持多文件打印也要支持单个文件的打印所以我们的Log类中要添加两个字段打印格式目标文件 那么现在我们又要对日志输出函数进行更深层次的封装了 那么关于向文件中写日志要为文件定制一个名字这里采用. 日志等级为后缀如果是向一个文件中打印的话后缀就是.all 现在我们就可以以三种方式输出日志了 屏幕 单个文件 多个文件 2. 优化 我们看到我们的代码大部分使用的都是C中的string但是使用的接口大多都是C语言的接口导致输出字符串时都得使用c_str()来转换这个接口打起来可能有些麻烦所以我们宏定义一下 上面展示宏使用的这个snprintf中的内容优有点难看这里也需要优化一下 我们也可以利用仿函数来将我们日志接口的使用来变得更简单 但是我们发现可变参数并不能够在多个函数上进行传递所以我们这里依旧利用va_list来实现传参 这样我们在使用日志接口时就可以是这样 并将LogMessage函数置为私有我们也知道日志功能在一个项目中输出的格式应该是一致的所以日志对象应该是只有一个所以 至此我们的日志的使用起来就是这样 而我们想要修改日志的输出格式只需要修改类内Conf的全局对象就可以 至此一个简单的日志功能就实现了。

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

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

相关文章

建设网官方网站工商执照查询官网

目录 一、SASL介绍 二、使用 SASL 进行身份验证 2.1 服务器到服务器的身份验证 2.2 客户端到服务器身份验证 三、验证功能 一、SASL介绍 默认情况下,ZooKeeper 不使用任何形式的身份验证并允许匿名连接。但是,它支持 Java 身份验证与授权服务(JAAS)…

精读C++设计模式20 —— 结构型设计模式:桥接模式 - 详解

精读C++设计模式20 —— 结构型设计模式:桥接模式 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

用纯.NET开发并制作一个智能桌面机器人(六):使用.NET开发一个跨平台功能完善的小智AI客户端

前言 前面几篇文章已经把机器人硬件控制部分的开发讲得差不多了,包括屏幕控制、舵机驱动、语音交互等功能。但是之前的外形太过简单,可动角度不够多,所以我就新改进了一个版本,叫VerdiBot(阿荫),详细视频介绍地…

潍坊网站开发公司wordpress伪原创设置

教程-上传应用公钥并获取支付宝公钥 1. 点击签名验签工具右下角的“上传公钥”会打开支付宝开放平台网页,输入账号登录。(建议使用IE或Chrome浏览器。) 2. 在“我的应用”中,选择要配置密钥的应用,点击“查看”。记录对应的APPID…

肥西县住房和城乡建设局网站台州网站制作开发

很久没写过php代码了,二开过程中笔记如下 注意事项 打开APP_DEBUG 关于建表 .在store进行开发,新建表的时候需要加上store_id字段 增加页面 前端页面 增加新的菜单,需要在router.config.js中增加对应的配置增加新的页面,需要…

Gateway-过滤器 - 教程

Gateway-过滤器 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

如何构建一个成交型网站响应式网站建设有哪些好处

一个有效的安全事件响应策略的关键组成部分有哪些?一个有效的安全事件响应策略包括四个关键组成部分,它们协同工作以确保对网络安全问题的快速和有效响应。 一个有效的安全事件响应策略的关键组成部分有哪些? 一个有效的安全事件响应策略包括…

公司建站系统企业网盘推荐

文章目录 一、简介二、OS认证三、口令认证四、remote_login_passwordfile 详解 一、简介 在数据库管理中,登录认证是确保数据库安全性的重要环节。Oracle数据库提供 了两种认证方式,一种是“操作系统认证”,一种是“口令文件认证&#xff0c…

深圳网站建设认准乐云犀牛云做网站推广怎么样

概述 在公司项目中使用到 wkhtmltopdf 转换PDF,由于 wkhtmltox-0.12.5 版本 echarts 图形虚线样式,需要升级 wkhtmltox-0.12.6 版本来解决。 官网地址 wkhtmltopdf :https://wkhtmltopdf.org/ windows 安装 下载流程及安装流程 进入官…

RabbitMQ的安装集群、镜像队列部署

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

怎样创办一个网站十堰网络科技公司排名

这是Project Student的一部分。 其他帖子包括带有Jersey的Webservice Client,带有Jersey的 Webservice Server和带有Spring Data的Persistence 。 RESTful Webapp洋葱的第三层是业务层。 这就是应用程序的精髓所在–编写良好的持久性和Web服务层受到约束&#xff0…

单一训练模式适应多个机器人本体 —— skiled brain —— 机器人酷刑现场,竟是为了锻造全能大脑,网友:求AGI饶了我

单一训练模式适应多个机器人本体 —— skiled brain —— 机器人酷刑现场,竟是为了锻造全能大脑,网友:求AGI饶了我地址: https://www.bilibili.com/video/BV1chngzvExC/本博客是博主个人学习时的一些记录,不保证…

2025/10/4 总结

A 用时:1h 预期:100pts 实际:100pts 发现直接暴力的复杂度是调和级数,于是就过了。 总结:对于这种复杂度有有剪枝的题,可以先算时间复杂度看是不是可过。 B 用时:2h 预期:50pts 实际:50pts 已经会了 50pts 暴…

win10界面如何改成经典菜单?

win10界面如何改成经典菜单?win10系统是微软推出的windows操作系统,在一些功能和设置上,与原先的win7有很多不一样的地方,很多小伙伴习惯了win7的开始菜单,开始使用win10的开始菜单非常不习惯,那么win10界面如何…

Qt处理Windows平板上摄像头

Qt处理Windows平板上摄像头pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …

邢台网站建设服务周到网站域名 英文

grad norm先降后升再降正常嘛 在深度学习中,梯度的范数通常被用来衡量模型参数的更新程度,也就是模型的学习进度。在训练初期,由于模型参数的初始值比较随机,梯度的范数可能会比较大,这是正常现象。随着模型的训练&…

你必须知道的TCP和UDP核心区别,快速搞懂这两大协议!

UDP与TCP详解1. TCP (Transmission Control Protocol) 概念 TCP(传输控制协议)是一种面向连接的、可靠的传输协议。它负责将数据从源主机传输到目标主机,并确保数据的完整性、顺序和正确性。 原理三次握手:在数据传…

机器学习——朴素贝叶斯详解 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

[swift 外部干涉法 extension]

/*** Definition for singly-linked list.* public class ListNode {* public var val: Int* public var next: ListNode?* public init(_ val: Int) {* self.val = val* self.next = ni…

2025国庆Day3

模拟赛 T1 对每个ai开个桶分别算答案即可 注意long long T2 维护m个指针 倒着枚举l p1~pm维护第i个字符已匹配的下标 每次匹配修改一个前缀 复杂度O(n) 另外可考虑:T3 设dpi,j表示i子树内钦定返祖j次的方案数 将相邻向…