- 基本情况介绍
- 为什么快:格式化是一个很耗时的操作,因此nanolog把格式化的内容放到线程里头去做。待写入的日志全部放到一个buffer里头,标志写入每个日志的类型
- nanolog有两个版本,一个是C++17, 一个是C++11, 前者速度快但编译麻烦, 后者使用方便,但速度较前者慢一些
- C++17的版本, 地址如下:https://github.com/PlatformLab/NanoLog
- C++11的版本, 地址如下:https://github.com/Iyengar111/NanoLog
- nanologC++11使用很简单,就两个文件,应用代码包含一下就可以用了
- nanologC++17 编译
- CentOS安装高版本的gcc
- 命令行操作
- yum install centos-release-scl
- yum install devtoolset-8-toolchain
- scl enable devtoolset-8 bash
- gcc --version
- 默认GCC版本方法:
- 该命令(scl enable devtoolset-8 bash)只是在当前命令行shell中使高版本gcc生效,退出当前shell后即失效, 要想使其一直生效,可以在/etc/profile中参加以下内容:source /opt/rh/devtoolset-8/enable
- 命令行操作
- cmake需要在CMakeList文件中添加
- set(CMAKE_C_COMPILER "/opt/rh/devtoolset-8/root/usr/bin/gcc")
- set(CMAKE_CXX_COMPILER "/opt/rh/devtoolset-8/root/usr/bin/g++")
- nanologC++17有preprocessor和普通两种模式:前者会通过python预先展开一些代码,性更好一点,但应用代码编译时需要包含自带的makefile,比较麻烦,这里我们用后一种普通模式
- 解压后进入runtime, make ,会生成libNanoLog.a
- 然后进入sample,make,生成sampleApplication测试程序和decompressor解日志工具
- 运行sampleApplication测试速度, 然后./decompressor decompress /tmp/logFile(这个路径是在main.cc代码设定的)解出可读日志
- CentOS安装高版本的gcc