实例介绍
【实例简介】Easylogging源码
功能特征
高度可配置
速度非常快
线程和类型安全
跨平台
自定义日志模式
条件日志和偶然日志
性能跟踪
详细记录日志
中断处理
辅助CHECK宏
STL 日志
第三方库日志(比如Qt, boost, wxWidgets)
可扩展性
支持Debug功能
系统日志记录
perror风格日志
C 流操作符风格日志
C 语言printf风格日志
————————————————
原文链接:https://blog.csdn.net/weixin_29885875/article/details/112842594
【实例截图】
【核心代码】
.
├── easyloggingpp-master
│ ├── ACKNOWLEDGEMENTS.md
│ ├── CHANGELOG.md
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ ├── cmake
│ │ ├── FindEASYLOGGINGPP.cmake
│ │ ├── Findgtest.cmake
│ │ └── easyloggingpp.pc.cmakein
│ ├── doc
│ │ ├── RELEASE-NOTES-v9.00
│ │ ├── RELEASE-NOTES-v9.01
│ │ ├── RELEASE-NOTES-v9.02
│ │ ├── RELEASE-NOTES-v9.03
│ │ ├── RELEASE-NOTES-v9.04
│ │ ├── RELEASE-NOTES-v9.05
│ │ ├── RELEASE-NOTES-v9.06
│ │ ├── RELEASE-NOTES-v9.07
│ │ ├── RELEASE-NOTES-v9.08
│ │ ├── RELEASE-NOTES-v9.09
│ │ ├── RELEASE-NOTES-v9.10
│ │ ├── RELEASE-NOTES-v9.11
│ │ ├── RELEASE-NOTES-v9.12
│ │ ├── RELEASE-NOTES-v9.13
│ │ ├── RELEASE-NOTES-v9.14
│ │ ├── RELEASE-NOTES-v9.15
│ │ ├── RELEASE-NOTES-v9.16
│ │ ├── RELEASE-NOTES-v9.17
│ │ ├── RELEASE-NOTES-v9.18
│ │ ├── RELEASE-NOTES-v9.19
│ │ ├── RELEASE-NOTES-v9.20
│ │ ├── RELEASE-NOTES-v9.21
│ │ ├── RELEASE-NOTES-v9.22
│ │ ├── RELEASE-NOTES-v9.23
│ │ ├── RELEASE-NOTES-v9.24
│ │ ├── RELEASE-NOTES-v9.25
│ │ ├── RELEASE-NOTES-v9.26
│ │ ├── RELEASE-NOTES-v9.27
│ │ ├── RELEASE-NOTES-v9.28
│ │ ├── RELEASE-NOTES-v9.29
│ │ ├── RELEASE-NOTES-v9.30
│ │ ├── RELEASE-NOTES-v9.31
│ │ ├── RELEASE-NOTES-v9.32
│ │ ├── RELEASE-NOTES-v9.33
│ │ ├── RELEASE-NOTES-v9.34
│ │ ├── RELEASE-NOTES-v9.35
│ │ ├── RELEASE-NOTES-v9.36
│ │ ├── RELEASE-NOTES-v9.37
│ │ ├── RELEASE-NOTES-v9.38
│ │ ├── RELEASE-NOTES-v9.39
│ │ ├── RELEASE-NOTES-v9.40
│ │ ├── RELEASE-NOTES-v9.41
│ │ ├── RELEASE-NOTES-v9.42
│ │ ├── RELEASE-NOTES-v9.43
│ │ ├── RELEASE-NOTES-v9.44
│ │ ├── RELEASE-NOTES-v9.45
│ │ ├── RELEASE-NOTES-v9.46
│ │ ├── RELEASE-NOTES-v9.47
│ │ ├── RELEASE-NOTES-v9.48
│ │ ├── RELEASE-NOTES-v9.49
│ │ ├── RELEASE-NOTES-v9.50
│ │ ├── RELEASE-NOTES-v9.51
│ │ ├── RELEASE-NOTES-v9.52
│ │ ├── RELEASE-NOTES-v9.53
│ │ ├── RELEASE-NOTES-v9.54
│ │ ├── RELEASE-NOTES-v9.55
│ │ ├── RELEASE-NOTES-v9.56
│ │ ├── RELEASE-NOTES-v9.57
│ │ ├── RELEASE-NOTES-v9.58
│ │ ├── RELEASE-NOTES-v9.59
│ │ ├── RELEASE-NOTES-v9.60
│ │ ├── RELEASE-NOTES-v9.61
│ │ ├── RELEASE-NOTES-v9.62
│ │ ├── RELEASE-NOTES-v9.63
│ │ ├── RELEASE-NOTES-v9.64
│ │ ├── RELEASE-NOTES-v9.65
│ │ ├── RELEASE-NOTES-v9.66
│ │ ├── RELEASE-NOTES-v9.67
│ │ ├── RELEASE-NOTES-v9.68
│ │ ├── RELEASE-NOTES-v9.69
│ │ ├── RELEASE-NOTES-v9.70
│ │ ├── RELEASE-NOTES-v9.71
│ │ ├── RELEASE-NOTES-v9.72
│ │ ├── RELEASE-NOTES-v9.73
│ │ ├── RELEASE-NOTES-v9.74
│ │ ├── RELEASE-NOTES-v9.75
│ │ ├── RELEASE-NOTES-v9.76
│ │ ├── RELEASE-NOTES-v9.77
│ │ ├── RELEASE-NOTES-v9.78
│ │ ├── RELEASE-NOTES-v9.79
│ │ ├── RELEASE-NOTES-v9.80
│ │ ├── RELEASE-NOTES-v9.81
│ │ ├── RELEASE-NOTES-v9.82
│ │ ├── RELEASE-NOTES-v9.83
│ │ ├── RELEASE-NOTES-v9.84
│ │ ├── RELEASE-NOTES-v9.85
│ │ ├── RELEASE-NOTES-v9.86
│ │ ├── RELEASE-NOTES-v9.87
│ │ ├── RELEASE-NOTES-v9.88
│ │ ├── RELEASE-NOTES-v9.89
│ │ ├── RELEASE-NOTES-v9.90
│ │ ├── RELEASE-NOTES-v9.91
│ │ ├── RELEASE-NOTES-v9.92
│ │ ├── RELEASE-NOTES-v9.93
│ │ └── RELEASE-NOTES-v9.94
│ ├── easyloggingpp.pri
│ ├── samples
│ │ ├── API
│ │ │ ├── build_all.sh
│ │ │ ├── compile.sh
│ │ │ ├── easylogging .cc
│ │ │ ├── easylogging .h
│ │ │ ├── logbuilder.cpp
│ │ │ ├── run.sh
│ │ │ └── run_all.sh
│ │ ├── MinGW
│ │ │ ├── compile.bat
│ │ │ ├── easylogging .cc
│ │ │ ├── easylogging .h
│ │ │ └── prog.cpp
│ │ ├── OpenGL
│ │ │ ├── Cube
│ │ │ │ ├── LICENCE
│ │ │ │ ├── Makefile
│ │ │ │ ├── imageloader.cpp
│ │ │ │ ├── imageloader.h
│ │ │ │ ├── main.cpp
│ │ │ │ └── vtr.bmp
│ │ │ ├── basic.cpp
│ │ │ ├── build_all.sh
│ │ │ ├── compile.sh
│ │ │ ├── easylogging .cc
│ │ │ ├── easylogging .h
│ │ │ ├── run.sh
│ │ │ └── run_all.sh
│ │ ├── Qt
│ │ │ ├── basic
│ │ │ │ ├── README.md
│ │ │ │ ├── easylogging .h
│ │ │ │ ├── main.cpp
│ │ │ │ ├── mythread.h
│ │ │ │ ├── qt-sample.pro
│ │ │ │ └── test_conf.conf
│ │ │ ├── fast-dictionary
│ │ │ │ ├── README.md
│ │ │ │ ├── fast-dictionary.pro
│ │ │ │ ├── listwithsearch.cc
│ │ │ │ ├── listwithsearch.hh
│ │ │ │ ├── main.cc
│ │ │ │ ├── mainwindow.cc
│ │ │ │ ├── mainwindow.hh
│ │ │ │ ├── mainwindow.ui
│ │ │ │ ├── moc_listwithsearch.cpp
│ │ │ │ ├── moc_mainwindow.cpp
│ │ │ │ ├── sample.gif
│ │ │ │ ├── ui_mainwindow.h
│ │ │ │ └── words.txt
│ │ │ ├── file-splitter-joiner
│ │ │ │ ├── README.md
│ │ │ │ ├── about.cpp
│ │ │ │ ├── about.h
│ │ │ │ ├── about.ui
│ │ │ │ ├── addsplittedfiledialog.cpp
│ │ │ │ ├── addsplittedfiledialog.h
│ │ │ │ ├── addsplittedfiledialog.ui
│ │ │ │ ├── easylogging .h
│ │ │ │ ├── file-splitter-and-joiner.pro
│ │ │ │ ├── joinercore.cpp
│ │ │ │ ├── joinercore.h
│ │ │ │ ├── joinerwidget.cpp
│ │ │ │ ├── joinerwidget.h
│ │ │ │ ├── joinerwidget.ui
│ │ │ │ ├── main.cpp
│ │ │ │ ├── mainwindow.cpp
│ │ │ │ ├── mainwindow.h
│ │ │ │ ├── partprocessor.cpp
│ │ │ │ ├── partprocessor.h
│ │ │ │ ├── splitablefiledelegate.cpp
│ │ │ │ ├── splitablefiledelegate.h
│ │ │ │ ├── splittercore.cpp
│ │ │ │ ├── splittercore.h
│ │ │ │ ├── splitterwidget.cpp
│ │ │ │ ├── splitterwidget.h
│ │ │ │ └── splitterwidget.ui
│ │ │ └── shared-lib
│ │ │ ├── README.md
│ │ │ ├── myapp
│ │ │ │ ├── easylogging .h
│ │ │ │ ├── main.cc
│ │ │ │ └── myapp.pro
│ │ │ └── mylib
│ │ │ ├── easylogging .h
│ │ │ ├── mylib.cc
│ │ │ ├── mylib.hh
│ │ │ ├── mylib.pro
│ │ │ └── mylib_global.hh
│ │ ├── STL
│ │ │ ├── all-logs.cpp
│ │ │ ├── autospace.cpp
│ │ │ ├── build_all.sh
│ │ │ ├── check-macros.cpp
│ │ │ ├── compile.sh
│ │ │ ├── conditional.cpp
│ │ │ ├── configurator.cpp
│ │ │ ├── containers.cpp
│ │ │ ├── crash.cpp
│ │ │ ├── custom-class.cpp
│ │ │ ├── custom-crash-handler.cpp
│ │ │ ├── custom-format-spec.cpp
│ │ │ ├── custom-performance-output.cpp
│ │ │ ├── default-configurations.cpp
│ │ │ ├── default-log-file-from-arg.cpp
│ │ │ ├── del-logger.cpp
│ │ │ ├── different-output.cpp
│ │ │ ├── easylogging .cc
│ │ │ ├── easylogging .h
│ │ │ ├── flags.cpp
│ │ │ ├── global-configuration.cpp
│ │ │ ├── helpers.cpp
│ │ │ ├── locale.cpp
│ │ │ ├── log-dispatch-callback.cpp
│ │ │ ├── loggable.cpp
│ │ │ ├── logger-log-functions.cpp
│ │ │ ├── logrotate-pthread.cpp
│ │ │ ├── logrotate.conf
│ │ │ ├── logrotate.cpp
│ │ │ ├── make-loggable.cpp
│ │ │ ├── manipulators.cpp
│ │ │ ├── multi-loggers-to-same-file.cpp
│ │ │ ├── multi-loggers-with-async.cpp
│ │ │ ├── multiple-loggers.cpp
│ │ │ ├── new-logger-registration-callback.cpp
│ │ │ ├── no-default-log-file.cpp
│ │ │ ├── occasional.cpp
│ │ │ ├── plog.cpp
│ │ │ ├── post-performance-tracking-handler.cpp
│ │ │ ├── pthread.cpp
│ │ │ ├── roll-out.cpp
│ │ │ ├── run.sh
│ │ │ ├── run_all.sh
│ │ │ ├── shared-static-libs
│ │ │ │ ├── README.md
│ │ │ │ ├── compile_shared.sh
│ │ │ │ ├── compile_static.sh
│ │ │ │ ├── easylogging .h
│ │ │ │ ├── lib
│ │ │ │ │ ├── include
│ │ │ │ │ │ ├── easylogging .h
│ │ │ │ │ │ └── mylib.hpp
│ │ │ │ │ └── mylib.cpp
│ │ │ │ └── myapp.cpp
│ │ │ ├── smart-pointer-null-check.cpp
│ │ │ ├── std-array.cpp
│ │ │ ├── syslog.cpp
│ │ │ ├── thread-names.cpp
│ │ │ ├── timed-block.cpp
│ │ │ ├── timed-scope.cpp
│ │ │ ├── verbose.cpp
│ │ │ └── very-basic.cpp
│ │ ├── VC
│ │ │ ├── VCPP2015_Win32
│ │ │ │ ├── VCPP2015_Win32
│ │ │ │ │ ├── VCPP2015_Win32.vcxproj
│ │ │ │ │ ├── VCPP2015_Win32.vcxproj.filters
│ │ │ │ │ ├── VCPP2015_Win32.vcxproj.user
│ │ │ │ │ ├── easylogging .cpp
│ │ │ │ │ ├── easylogging .h
│ │ │ │ │ └── main.cpp
│ │ │ │ └── VCPP2015_Win32.sln
│ │ │ └── VCPP2015_Win32_Multithreaded
│ │ │ ├── VCPP2015_Win32
│ │ │ │ ├── VCPP2015_Win32.vcxproj
│ │ │ │ ├── VCPP2015_Win32.vcxproj.filters
│ │ │ │ ├── easylogging .cc
│ │ │ │ ├── easylogging .h
│ │ │ │ └── main.cpp
│ │ │ └── VCPP2015_Win32.sln
│ │ ├── async
│ │ │ ├── build.sh
│ │ │ ├── easylogging .cc
│ │ │ ├── easylogging .h
│ │ │ ├── mymath.h
│ │ │ └── prog.cpp
│ │ ├── boost
│ │ │ ├── build_all.sh
│ │ │ ├── compile.sh
│ │ │ ├── deque.cpp
│ │ │ ├── easylogging .cc
│ │ │ ├── easylogging .h
│ │ │ ├── list.cpp
│ │ │ ├── map.cpp
│ │ │ ├── run.sh
│ │ │ ├── run_all.sh
│ │ │ ├── set.cpp
│ │ │ ├── string.cpp
│ │ │ └── vector.cpp
│ │ ├── console.conf
│ │ ├── default-logger.conf
│ │ ├── file.conf
│ │ ├── global.conf
│ │ ├── gtkmm
│ │ │ ├── build_all.sh
│ │ │ ├── compile.sh
│ │ │ ├── easylogging .cc
│ │ │ ├── easylogging .h
│ │ │ ├── hello_gtkmm
│ │ │ │ ├── compile.sh
│ │ │ │ ├── easylogging .h
│ │ │ │ ├── main.cc
│ │ │ │ ├── window.cc
│ │ │ │ └── window.h
│ │ │ ├── run.sh
│ │ │ ├── run_all.sh
│ │ │ ├── sigc .cpp
│ │ │ └── ustring.cpp
│ │ ├── send-to-network
│ │ │ ├── README.md
│ │ │ ├── compile.sh
│ │ │ ├── easylogging .cc
│ │ │ ├── easylogging .h
│ │ │ └── network-logger.cpp
│ │ └── wxWidgets
│ │ ├── build_all.sh
│ │ ├── compile.sh
│ │ ├── easylogging .cc
│ │ ├── easylogging .h
│ │ ├── run.sh
│ │ ├── run_all.sh
│ │ ├── wxhashmap.cpp
│ │ ├── wxhashset.cpp
│ │ ├── wxlist.cpp
│ │ ├── wxlonglong.cpp
│ │ ├── wxstring.cpp
│ │ └── wxvector.cpp
│ ├── src
│ │ ├── easylogging .cc
│ │ └── easylogging .h
│ ├── test
│ │ ├── build_and_run.sh
│ │ ├── command-line-args-test.h
│ │ ├── configurations-test.h
│ │ ├── custom-format-specifier-test.h
│ │ ├── date-utils-test.h
│ │ ├── easylogging .cc
│ │ ├── easylogging .h
│ │ ├── enum-helper-test.h
│ │ ├── file-utils-test.h
│ │ ├── format-specifier-test.h
│ │ ├── global-configurations-test.h
│ │ ├── helpers-test.h
│ │ ├── hit-counter-test.h
│ │ ├── log-format-resolution-test.h
│ │ ├── loggable-test.h
│ │ ├── logger-test.h
│ │ ├── macros-test.h
│ │ ├── main.cc
│ │ ├── os-utils-test.h
│ │ ├── plog-test.h
│ │ ├── post-log-dispatch-handler-test.h
│ │ ├── registry-test.h
│ │ ├── strict-file-size-check-test.h
│ │ ├── string-utils-test.h
│ │ ├── syslog-test.h
│ │ ├── test.h
│ │ ├── typed-configurations-test.h
│ │ ├── utilities-test.h
│ │ ├── verbose-app-arguments-test.h
│ │ └── write-all-test.h
│ └── tools
│ ├── cpplint.py
│ └── release.sh
└── 好例子网_easyloggingpp-master.tar
33 directories, 340 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论