This commit is contained in:
binbinnomoney 2024-08-01 12:56:20 +08:00
parent 5e978069b6
commit 0eda768579
4 changed files with 22 additions and 109 deletions

View File

@ -6,7 +6,7 @@ include_directories(
.
./src
./include
${UTILS_SOURCE_PATH}/Log/src/easyloggingpp
${UTILS_SOURCE_PATH}/Log/include
${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googletest/include
${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/include

View File

@ -1,4 +1,4 @@
/*
#include "ILog.h"
// #include <gmock/gmock.h>
#include <gtest/gtest.h>
@ -7,6 +7,7 @@ namespace ILogTest
// ../output_files/test/bin/LogTest --gtest_filter=ILogTest.Demo
TEST(ILogTest, Demo)
{
CreateLogModule();
ILogInit(LOG_INSTANCE_TYPE_END);
LogInfo("hello world.");
@ -15,78 +16,4 @@ namespace ILogTest
ILogUnInit();
DestroyLogModule();
}
} // namespace ILogTest
*/
#define ELPP_THREAD_SAFE
#include "easylogging++.h"
#include <gtest/gtest.h>
#include <gmock/gmock.h>
INITIALIZE_EASYLOGGINGPP
namespace ILogTest
{
TEST(ILogTest, Demo)
{
// 假设你已经在全局范围内设置了日志格式
el::Configurations defaultConf;
defaultConf.setToDefault();
/*
defaultConf.set(el::Level::Global,
el::ConfigurationType::Format,
"\x1b[32m%datetime %level %msg\x1b[0m"); // 绿色日志消息
*/
// 设置 INFO 级别的日志格式为绿色
defaultConf.set(el::Level::Info,
el::ConfigurationType::Format,
"\x1b[32m%datetime %level %msg\x1b[0m");
// 设置 WARNING 级别的日志格式为黄色
defaultConf.set(el::Level::Debug,
el::ConfigurationType::Format,
"\x1b[33m%datetime %level %msg\x1b[0m");
// 设置 ERROR 级别的日志格式为红色
defaultConf.set(el::Level::Error,
el::ConfigurationType::Format,
"\x1b[31m%datetime %level %msg\x1b[0m");
// 注意:上面的格式将所有日志消息都设置为绿色。
// 如果你想要为不同的日志级别设置不同的颜色,你需要为每个级别分别设置格式。
// 另一种方法是使用条件格式,但这在 INI 配置文件中可能更难以实现,
// 因此你可能需要通过编程方式来实现。
el::Loggers::reconfigureLogger("default", defaultConf);
// 如果你使用的是配置文件,确保它已正确设置并加载
// 否则你可以在这里通过编程方式配置elpp
// 示例:动态设置配置以启用颜色输出(注意:这只是一个示例,实际配置可能不同)
// el::Configurations defaultConf;
// defaultConf.setToDefault();
// defaultConf.set(el::Level::Global,
// el::ConfigurationType::Format,
// "%datetime %level %msg %func %loc");
// defaultConf.set(el::Level::Global,
// el::ConfigurationType::EnableColoredLogMessages,
// "true");
// el::Loggers::reconfigureLogger("default", defaultConf);
// 使用easylogging++的日志宏
LOG(INFO) << "hello world.";
LOG(ERROR) << "create ... failed.";
LOG(DEBUG) << "a = " << 124 << " b = " << "apple";
// 注意:在单元测试中,你可能不需要初始化或销毁日志模块,
// 因为easylogging++已经为你处理了这些。
// 但是,如果你有自己的日志封装或初始化代码,你应该根据需要进行调整。
}
} // namespace ILogTest

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 启用颜色输出 -->
<colored>true</colored>
<!-- 设置日志格式 -->
<formats>
<pattern>%datetime %level %msg</pattern>
</formats>
<!-- 其他配置... -->
<appenders>
<console name="Stdout">
<enabled>true</enabled>
<!-- 对于控制台输出,通常不需要设置颜色,因为<colored>标签已经启用了颜色 -->
</console>
<!-- 如果你还配置了文件输出等其他appender可以在这里设置 -->
</appenders>
<loggers>
<root>
<level value="debug" />
<appender-ref ref="Stdout" />
<!-- 引用其他appender如果有的话 -->
</root>
</loggers>
</configuration>

View File

@ -19,6 +19,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <easylogging++.h>
/**
* @brief jieshao
*
@ -33,7 +34,24 @@ static void LogFree(ILog *object)
}
static int LogPrintf(ILog *object, const char *function, const int line, const enum LogType type, const char *format,
...)
{
{
el::Configurations defaultConf;
defaultConf.setToDefault();
defaultConf.set(el::Level::Info,
el::ConfigurationType::Format,
"\x1b[32m%datetime %level %msg\x1b[0m");
defaultConf.set(el::Level::Debug,
el::ConfigurationType::Format,
"\x1b[33m%datetime %level %msg\x1b[0m");
defaultConf.set(el::Level::Error,
el::ConfigurationType::Format,
"\x1b[31m%datetime %level %msg\x1b[0m");
el::Loggers::reconfigureLogger("default", defaultConf);
// TODO:
// LogTypeToString(type);
constexpr int SEND_TRACE_BUFF_SIZE = 2048;