#pragma once #include <chrono> static std::string getTimeStr() { std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds> tpNow = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now()); auto tmpNow=std::chrono::duration_cast<std::chrono::milliseconds>(tpNow.time_since_epoch()); uint64_t milli = tmpNow.count(); milli += (uint64_t)8*60*60*1000;//add to beijing time zone. auto mTime = std::chrono::milliseconds(milli); auto tp=std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds>(mTime); auto tt = std::chrono::system_clock::to_time_t(tp); std::tm* info = std::gmtime(&tt); char tmp[27] = {0}; sprintf(tmp, "%04d-%02d-%02d %02d:%02d:%02d.%03ld", info->tm_year+1900, info->tm_mon+1, info->tm_mday, info->tm_hour, info->tm_min, info->tm_sec, milli%1000); return tmp; } #define DEBUG_FLAG #ifdef DEBUG_FLAG #define MY_LOGD(format, ...) {printf("%s: D/%s[%s]: ", getTimeStr().c_str(), basename(__FILE__), __func__);printf(format, ##__VA_ARGS__);printf("\n");} #else #define MY_LOGD(format, ...) #endif #define MY_LOGE(format, arg...) {printf("%s: E/%s[%s]: ", getTimeStr().c_str(), basename(__FILE__), __func__);if(strlen(format)>0){printf(format, ##arg);}printf("\n");} #define FUNCTION_NAME MY_LOGD(" "); #define FUNCTION_IN MY_LOGD("+") #define FUNCTION_OUT MY_LOGD("-")
相关推荐
在开发Windows应用程序时,VC++、C++以及MFC(Microsoft Foundation Classes)是常见的编程工具和技术。日志记录(log recording)是软件开发中...在实际应用中,根据项目需求和团队规范调整日志系统,以达到最佳效果。
C++开源日志库GLOG是由Google开发的一款强大的日志处理框架,它的设计目标是提供一个灵活、高效且易于使用的日志系统,适用于各种规模的软件项目。GLOG库不仅支持基本的日志输出,还提供了丰富的特性,如日志级别...
在IT行业中,编程语言C++是一种强大的工具,尤其在系统编程、高性能计算和嵌入式领域有着广泛的应用。本文将深入探讨"打印测试资料c++代码"这一主题,旨在为开发者提供全面理解打印机驱动和相关程序代码的知识。 ...
QT框架是Qt公司开发的一种跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面应用、移动应用以及嵌入式设备开发。在QT下实现记录日志类的封装调用,是一个重要的实践过程,它可以帮助开发者更好地管理和追踪...
11. **代码规范**:良好的编程风格和注释可以使代码更易读、易懂和易维护。遵循一定的命名规则、使用空格和缩进、添加注释都是编写高质量C++代码的关键。 以上就是对标题和描述中涉及的C++程序设计基础知识点的详解...
调试技巧包括使用断点、单步执行、查看变量值、打印日志等,以找出并修复问题。VC++6.0提供的调试工具可以有效地帮助我们进行这些操作。 最后,良好的编程习惯和文档记录也是项目成功的关键。清晰的代码结构、有...
QT框架是C++开发中广泛使用的库,尤其在创建图形用户界面(GUI)应用程序时。在QT中实现配置文件设置和日志存储是一项常见的任务,它有助于管理和跟踪应用程序的运行状态,以及允许用户自定义软件行为。在VS2019编译...
综上所述,多线程编写txt日志涉及的主要知识点包括线程同步、临界代码区的使用、数组模板的灵活应用以及错误消息的规范打印。通过理解和掌握这些概念,开发者能够在多线程环境中创建稳定、高效的日志系统。
9. **代码组织**:良好的代码结构和命名规范是提高代码可读性和维护性的关键,遵循一定的编程风格,如C++的STL风格或者Google编程风格指南。 10. **文档编写**:编写清晰的README文件介绍项目的用途、安装步骤、...
在软件开发领域,Visual C++ 2005是一款强大的编程工具,它提供了丰富的功能和接口,使得开发者能够创建高效的桌面应用程序,特别是在数据库应用方面。本案例聚焦于使用Visual C++ 2005开发一个小区物业管理系统,...
总的来说,“学生通讯信息管理系统C++”项目旨在锻炼学生的实际编程能力和系统设计思维,通过这个项目,他们可以深入理解C++的面向对象特性,并将所学知识应用于实际问题中,从而提升自己的专业素养。
EPSON OPOS打印驱动是一种专为爱普生(EPSON)品牌打印机设计的开放标准接口程序,它基于OPOS(Open POS Industry Standard)规范,旨在提供一个统一的、跨平台的接口,使得在不同类型的零售和餐饮系统中能够方便地...
在实际应用中,这样的日志封装类可以极大地提高开发效率,简化代码结构,同时保证日志管理的规范性和可维护性。它可以帮助开发者快速定位问题,跟踪系统状态,尤其在分布式系统或高并发环境中,良好的日志记录系统是...
Visual C++是微软公司推出的一款集成开发环境,它集成了编译器、调试器等开发工具,支持Windows应用程序的开发。C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的...
《VC++虚拟打印机源码v1.0》是一款在2000年开发完成的、基于C++编程语言的虚拟打印机源代码,其中融入了一小部分DELPHI编写的组件。这款软件允许用户在Windows 2000/XP/20003操作系统环境下,将各种应用程序中的内容...
综上所述,《Professional C++》这本书覆盖了从C++基础到高级编程技术的各个方面,适合希望深入了解C++语言及其在实际项目中应用的程序员阅读。无论是初学者还是有一定经验的开发人员,都能从中获得有价值的知识和...
Log4j作为一款流行的开源日志组件,由Apache软件基金会开发,广泛应用于各种应用环境,包括Windows、Unix等操作系统,以及Java、C++、.NET、PL/SQL等多种编程语言环境。 #### 核心知识点详解: ##### 1. 日志记录...
34. **Android Studio调试技巧**:熟练运用断点、日志打印、性能分析等调试工具,解决开发中的问题。 35. **持续集成与持续部署(CI/CD)**:自动化构建、测试和发布流程,确保代码质量和快速迭代。 36. **App性能...