- 浏览: 369580 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
一提到log,相信很多人就知道我要写些什么东西了,在所有的项目中都有自己一套写日志的模块。下面呢,我就根据平时的项目的需求写了一个比较简单使用的logger,方便输出各种等级的log。
事先声明一下,代码仅供大家学习参考之用,有什么不足的地方还请大家提出来。在实际使用中可以考虑把log放入一个list,然后用一个线程专门负责写log.
下面logger的结构,有需要的源代码的,索取一下密码,谢谢!
事先声明一下,代码仅供大家学习参考之用,有什么不足的地方还请大家提出来。在实际使用中可以考虑把log放入一个list,然后用一个线程专门负责写log.
下面logger的结构,有需要的源代码的,索取一下密码,谢谢!
class Logger { public: static void InitLoggerConfig(void); static void StringLog(LogLevel logLevel, const string& strFuctionName, int lineNumber, string strFileName, const char* strInfo); static void Log(LogLevel logLevel, const string& strFuctionName, int lineNumber, string strFileName, const char* strFormat, ...); static void Log(LogLevel logLevel, StringBuilder& stringBuilder, const string& strFuctionName, int lineNumber, string strFileName); static void RetureLog(LogLevel logLevel, const string& strFuctionName, int lineNumber, string strFileName, const char* strInfo); static void LogPrinter(LogLevel logLevel, const char* strInfo, ...); private: static string GetFileMainPath(); private: static string mStrLog; static string mStrFileName; static string mStrFileMainPath; static time_t mTimeValue; static LogLevel mLogLevel; static tm mDateTime; static LogManager mLogManager; };
//测试代码 int main() { const char *pInfo = "strInfo"; const char *pWarringInfo = "Waring Log"; const char *pErrorInfo = "Error Log"; const char *pFatalInfo = "Fatal Log"; const char *pDebugInfo = "Debug Log"; INIT_LOG(); INFO_LOG(pInfo); WARN_LOG(pWarringInfo); ERR_LOG(pErrorInfo); FATAL_LOG(pFatalInfo); DEBUG_LOG(pDebugInfo); INFO("%s", pInfo); WARN("%s",pWarringInfo); ERR (" %s",pErrorInfo); FATAL(" %s",pFatalInfo); DEBUG(" %s",pDebugInfo); int i = 0; XX_INFO_LOG( pInfo << &i); XX_WARN_LOG( pWarringInfo << 1 ); XX_ERR_LOG( pErrorInfo << 2 ); XX_FATAL_LOG( pFatalInfo << 3 ); XX_DEBUG_LOG( pDebugInfo << 4 ); LOG_PRINTER(INFO,"%d %f %c %s", 1, 1.2, 'c', "123"); LOG_PRINTER(FATAL,"%d %f %c", 1, 1.2, 'c'); LOG_PRINTER(ERR,"%d %f %c", 1, 1.2, 'c'); return 0; }
- LoggerDemo.zip (23.8 KB)
- 下载次数: 31
- LoggerDemo_DLL_Version_.zip (51 KB)
- 下载次数: 14
- Logger_V1.0.0.1.zip (5.4 KB)
- 下载次数: 16
- Logger_Source_V1.0.0.3.zip (9.4 KB)
- 下载次数: 3
发表评论
-
FreeRTOS
2022-03-05 16:31 246Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 410https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1323https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 476https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 573// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 578https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5728583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 599参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2153基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9051 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1581OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1879ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 869转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1906转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1085C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 968转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 989转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 809参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1610转自 http://blog.csdn.net/weixinh ...
相关推荐
在IT行业中,日志文件是记录应用程序运行状态、错误信息以及调试信息的重要工具。...在实际项目中,我们应根据需求选择合适的日志级别、格式和存储方式,同时制定合理的日志清理策略,保持系统的健康运行。
6. **日志记录**:Poco的 logging 模块提供了一种灵活的日志记录框架,支持多种日志记录器,如控制台、文件、syslog等,可自定义日志级别和格式,便于调试和监控应用。 7. **线程与并发**:Poco库提供了多线程和...
**日志记录**:Logging库提供了灵活的日志记录设施,支持多种日志目标,如控制台、文件、网络等,并可以自定义日志级别和格式。 **线程和进程管理**:Poco::Thread和Poco::Process类提供了多线程和进程控制功能,...
1. **导入库**:在C++源文件中,首先需要包含qslog库的头文件,并启用所需的日志级别。例如,要使用INFO和ERROR级别,可以这样写: ```cpp #include QSLOG_LEVEL_SET(QSLOG_LEVEL_INFO | QSLOG_LEVEL_ERROR); ``` ...
6. **日志记录**:Logging库提供了一种灵活的日志记录机制,允许开发者自定义日志级别、格式和输出目标,便于调试和监控应用状态。 7. **文件系统操作**:File和Path类提供了对文件系统的操作,如创建、删除、移动...
- **日志库 (Logging)**:管理系统的日志记录。 - **职责**:记录系统运行过程中的关键信息。 - **接口**:定义了日志记录的方法。 - **压缩解压库 (Lzo)**:提供数据的压缩和解压缩功能。 - **职责**:对数据...
可以使用各种日志框架,如C++的log4cpp,Java的log4j或Python的logging模块,来实现这一功能。日志记录应该包含时间戳、异常类型、堆栈信息以及可能的环境变量,以提供全面的上下文信息。 为了实现这些功能,我们...
在IT行业中,日志记录(logging)是程序开发不可或缺的一部分,尤其对于调试、性能分析以及问题排查至关重要。本文将详细探讨一个名为"CLogFile"的简单高效日志类,该类适用于C++编程语言,旨在帮助初学者理解如何...
可以使用标准库(如C++的`fstream`或Python的`logging`模块)或自定义函数来实现日志写入。在网络日志中,可能需要使用Socket将日志信息编码为字符串并发送到日志收集服务。 **sokit-1.3-win32-chs** `sokit-1.3-...
poBase 适用于各种需要跨平台兼容性的 C++ 项目,特别是那些涉及多线程处理、模块化架构或需要动态加载外部库的应用。例如,服务器软件、游戏引擎、多媒体处理工具等都可以从 poBase 中获益。 总结来说,poBase 是...
2. **日志系统**: 使用`logging`模块记录爬虫运行状态,便于调试和问题排查。 八、法律合规性 1. **遵守robots.txt**: 尊重网站的爬虫规则,避免爬取禁止抓取的页面。 2. **数据版权与隐私**: 确保抓取和使用数据...
5. **日志系统(Logging System)**:MySQL有二进制日志(用于复制)、错误日志、慢查询日志等功能,源代码中可以学习到日志的记录和回放机制。 6. **安全与权限(Security and Privileges)**:MySQL的用户认证、...
POCO库,全称“Portable Class Library”,是一个开源的C++类库,它包含了一系列轻量级、模块化的组件,尤其在嵌入式系统中表现出色。这个教程覆盖了从基础到高级的各种主题,通过20个章节的PDF文档,深入浅出地阐述...
Qt5提供了丰富的日志和调试工具,如QDebug和Q Logging Framework,可以帮助开发者定位和修复问题。 总的来说,这个音乐播放器项目涵盖了Qt5 GUI编程、多媒体处理、文件操作、用户偏好设置等多个方面的技术,对于...
3. **时间测量**:为了计算十次平均时间,源码可能包含了计时函数,如C++中的`std::chrono`库,Python中的`time`模块,或者是Java的`System.nanoTime()`。这些函数用于记录代码执行的起始和结束时间,从而计算出执行...
除了作为本地文件缓存,LevelDB也被广泛应用于其他场景,如NoSQL数据库(如Redis的模块)、日志记录、元数据存储以及各种分布式系统中的局部数据存储。 通过阅读和理解LevelDB的源码,开发者可以深入学习其内部...
10. **commons-logging.jar**: 提供了一个日志记录的抽象层,可以适配各种日志实现,如log4j、java.util.logging等。 11. **commons-pool.jar**: 提供对象池服务,可以用于数据库连接池、线程池等资源管理。 12. *...
"FsLibrary-master" 这个文件名暗示了这是一个项目的主分支或者主版本,通常在开源项目中,"master" 分支代表了最新的稳定代码。下面我们将深入探讨 C++ 基础库的一些关键知识点,并尝试推测 FsLibrary 可能包含的...