热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何将消息时间戳记写入日志文件?

如何解决《如何将消息时间戳记写入日志文件?》经验,为你挑选了1个好方法。

我正在尝试为我的C ++程序创建一个日志文件。我的目标是在程序的两点放置两个时间戳,并在文件中打印这两点之间的CPU时间周期。我这样做是因为我想知道代码的哪些部分最耗时,因此可以进行改进(因此可能要测量几块代码)。到目前为止,我已经制作了一个函数,该函数在被调用时将作为参数传递的字符串打印到文件中:

#define LOGFILE "myprog.log"
void Log (std::string message){
    std::ofstream ofs;
    ofs.open(LOGFILE, std::ofstream::out | std::ios::app);
    ofs <

但是,我很难弄清楚如何打印CPU时间戳。首先,我不知道应该使用哪种时间测量格式(我应该使用chrono还是time_t类型?)我正在尝试打印时间段,因此,如果存在持续时间类型(我会我尝试了chrono :: duration,但似乎需要C ++ 11支持)。其次,鉴于我知道要使用哪种类型,如何将其打印到文件中?有没有一种方法可以将该类型转换为字符串?还是可以将其直接传递给函数并以某种方式打印?

最近几天这让我很烦恼,我似乎无法弄清楚,因此任何输入都会很有帮助。提前致谢!



1> Xirema..:

获取CPU时间戳

您将需要使用std::chrono::system_clock此时间戳。请勿使用std::chrono::steady_clockstd::chrono::high_resolution_clock来进行高精度的定时测量,也不保证壁钟时间的逼真度或准确性。

auto now = std::chrono::system_clock::now();
//now is a time_point object describing the instant it was recorded according to your system clock

以可读格式打印此CPU时间戳

在C ++ 20中,这很简单。

std::string formatted_time = std::chrono::format("%F_%T", now);
ofs <

%F是的替代%Y-%m-%D,它将以ISO格式(即)输出年月日2018-10-09

%T与相同%H:%M:%S,将输出一个时间,即17:55:34.786

有关std::chrono::format更多选项/详细信息,请参见规格。

在C ++ 20之前

考虑霍华德·辛南特(Howard Hinnant)的date库,其中大部分已作为chrono库的新部分并入C ++ 20 。该format库中找到的函数使用与上面针对C ++ 20版本建议的语法相同的语法。


推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了在Cpp中将字符串形式的数值转换为int或float等数值类型的方法,主要使用了strtol、strtod和strtoul函数。这些函数可以将以null结尾的字符串转换为long int、double或unsigned long类型的数值,且支持任意进制的字符串转换。相比之下,atoi函数只能转换十进制数值且没有错误返回。 ... [详细]
author-avatar
手机用户2502920971
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有