C++ Easylogging++日志库配置使用超详细讲解

 更新时间:2022年11月10日 11:23:51   作者:HW140701  
这篇文章主要介绍了C++ Easylogging++日志库配置使用,Easylogging++是用于C++应用程序的单头高效日志库。它非常强大,高度可扩展并且可以根据用户的要求进行配置

Easylogging++

Easylogging++是一个只有单个头文件的开源跨平台日志库,拥有简单易集成,速度极快,线程安全,高效并可配置可扩展等等优点,现在也是我的主力日志库。

下载Easylogging++

Github地址:https://github.com/amrayn/easyloggingpp

从Githu下载Easylogging++,下载下来只有两个文件,easylogging++.heasylogging++.cc

在VS中配置Easylogging++

右键项目-属性-C+±常规-附加包含项目,添加easylogging++.h所在目录

easylogging++.cc添加到项目中。

使用Easylogging++

(1) 包含头文件

// easylogging++
#include "easylogging++.h"
#define ELPP_THREAD_SAFE

(2) 初始化Easylogging++

INITIALIZE_EASYLOGGINGPP

(3) 设置日志输出配置

static void InitEasyloggingPP()
{
	el::Configurations conf;
	// 启用日志
	conf.setGlobally(el::ConfigurationType::Enabled, "true");
	//设置日志文件目录以及文件名
	conf.setGlobally(el::ConfigurationType::Filename, "log\\log_%datetime{%Y%M%d %H%m%s}.log");
	//设置日志文件最大文件大小
	conf.setGlobally(el::ConfigurationType::MaxLogFileSize, "20971520");
	//是否写入文件
	conf.setGlobally(el::ConfigurationType::ToFile, "true");
	//是否输出控制台
	conf.setGlobally(el::ConfigurationType::ToStandardOutput, "true");
	//设置日志输出格式
	conf.setGlobally(el::ConfigurationType::Format, "[%datetime] [%loc] [%level] : %msg");
	//设置日志文件写入周期,如下每100条刷新到输出流中
	conf.setGlobally(el::ConfigurationType::LogFlushThreshold, "100");
	//设置配置文件
	el::Loggers::reconfigureAllLoggers(conf);
}

(4) 示例程序

// easylogging++
#include "easylogging++.h"
#define ELPP_THREAD_SAFE
INITIALIZE_EASYLOGGINGPP
static void InitEasyloggingPP()
{
	el::Configurations conf;
	// 启用日志
	conf.setGlobally(el::ConfigurationType::Enabled, "true");
	//设置日志文件目录以及文件名
	conf.setGlobally(el::ConfigurationType::Filename, "log\\log_%datetime{%Y%M%d %H%m%s}.log");
	//设置日志文件最大文件大小
	conf.setGlobally(el::ConfigurationType::MaxLogFileSize, "20971520");
	//是否写入文件
	conf.setGlobally(el::ConfigurationType::ToFile, "true");
	//是否输出控制台
	conf.setGlobally(el::ConfigurationType::ToStandardOutput, "true");
	//设置日志输出格式
	conf.setGlobally(el::ConfigurationType::Format, "[%datetime] [%loc] [%level] : %msg");
	//设置日志文件写入周期,如下每100条刷新到输出流中
	conf.setGlobally(el::ConfigurationType::LogFlushThreshold, "100");
	//设置配置文件
	el::Loggers::reconfigureAllLoggers(conf);
}
int main()
{
	InitEasyloggingPP();
	LOG(INFO) << "Hello World";
}

 

到此这篇关于C++ Easylogging++配置使用超详细讲解的文章就介绍到这了,更多相关C++ Easylogging++内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 模拟鼠标事件的实现思路及代码

    模拟鼠标事件的实现思路及代码

    这篇文章主要介绍了模拟鼠标事件的实现思路及代码,有需要的朋友可以参考一下
    2013-12-12
  • Qt 信号自定义槽函数的实现

    Qt 信号自定义槽函数的实现

    Qt中实现自定义信号与槽函数,信号用于发送并触发槽函数,槽函数则是具体的功能实现,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-11-11
  • C++ 打开选择文件夹对话框选择目录的操作

    C++ 打开选择文件夹对话框选择目录的操作

    这篇文章主要介绍了C++ 打开选择文件夹对话框选择目录的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C++编程中变量的声明和定义以及预处理命令解析

    C++编程中变量的声明和定义以及预处理命令解析

    这篇文章主要介绍了C++编程中变量的声明和定义以及预处理命令解析,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • C++的sstream标准库详细介绍

    C++的sstream标准库详细介绍

    以下是对C++中的的sstream标准库进行了详细的介绍,需要的朋友可以过来参考下
    2013-09-09
  • C++中list的用法实例讲解

    C++中list的用法实例讲解

    list是顺序容器的一种,list是一个双向链表,使用list需要包含头文件list,这篇文章主要给大家介绍了关于C++中list的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • C++中的字符串(1)

    C++中的字符串(1)

    这篇文章主要简单介绍C++中的字符串,字符串就是连续的一连串字符,在C++当中, 处理字符串的方式有两种类型。一种来自于C语言,也被称为C风格字符串。另外一种是基于string类库,下面来看文章学校内容
    2021-11-11
  • C++11的函数包装器std::function使用示例

    C++11的函数包装器std::function使用示例

    C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解,包括它的基本用法、特点、限制、以及与其他相关机制的对比
    2024-12-12
  • C语言数据结构实现银行模拟

    C语言数据结构实现银行模拟

    这篇文章主要介绍了C语言数据结构实现银行模拟的相关资料,通过此文希望大家能理解离散化的方法,希望能帮助到大家,需要的朋友可以参考下
    2017-08-08
  • C++深入细致探究二叉搜索树

    C++深入细致探究二叉搜索树

    二叉搜索树是以一棵二叉树来组织的。每个节点是一个对象,包含的属性有left,right,p和key,其中,left指向该节点的左孩子,right指向该节点的右孩子,p指向该节点的父节点,key是它的值
    2022-05-05

最新评论