您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在 Linux C++ 开发中进行日志记录,你可以使用一些现成的库,如 log4cpp、spdlog 等
首先,你需要安装 log4cpp 库。在 Ubuntu 系统上,可以使用以下命令安装:
sudo apt-get install liblog4cpp-dev
接下来,创建一个名为 logger.h
的头文件,用于存放日志记录器的声明:
#ifndef LOGGER_H
#define LOGGER_H
#include <log4cpp/Category.hh>
#include <log4cpp/FileAppender.hh>
#include <log4cpp/PatternLayout.hh>
class Logger {
public:
static void init();
static log4cpp::Logger& getLogger(const std::string& loggerName);
};
#endif // LOGGER_H
然后,创建一个名为 logger.cpp
的源文件,用于存放日志记录器的实现:
#include "logger.h"
log4cpp::PatternLayout* layout = new log4cpp::PatternLayout();
layout->setConversionPattern("%d [%t] %-5p %c{1}:%L - %m%n");
log4cpp::Appender* appender = new log4cpp::FileAppender("log.txt", layout);
appender->setImmediateFlush(true);
log4cpp::Category& root = log4cpp::Category::getRoot();
root.addAppender(appender);
root.setPriority(log4cpp::Priority::INFO);
void Logger::init() {
// 初始化 log4cpp 库
}
log4cpp::Logger& Logger::getLogger(const std::string& loggerName) {
return log4cpp::Category::getInstance(loggerName);
}
在你的主程序中,包含 logger.h
头文件并使用 Logger
类记录日志:
#include <iostream>
#include "logger.h"
int main() {
Logger::init();
log4cpp::Logger& logger = Logger::getLogger("main");
logger.info("This is an info message");
logger.error("This is an error message");
return 0;
}
首先,你需要安装 spdlog 库。在 Ubuntu 系统上,可以使用以下命令安装:
sudo apt-get install libspdlog-dev
接下来,创建一个名为 logger.h
的头文件,用于存放日志记录器的声明:
#ifndef LOGGER_H
#define LOGGER_H
#include <spdlog/spdlog.h>
class Logger {
public:
static void init();
static std::shared_ptr<spdlog::logger> getLogger(const std::string& loggerName);
};
#endif // LOGGER_H
然后,创建一个名为 logger.cpp
的源文件,用于存放日志记录器的实现:
#include "logger.h"
void Logger::init() {
// 初始化 spdlog 库
auto console = spdlog::stdout_color_mt("console");
console->set_pattern("%^[%T] %l %v%$");
}
std::shared_ptr<spdlog::logger> Logger::getLogger(const std::string& loggerName) {
return spdlog::get(loggerName);
}
在你的主程序中,包含 logger.h
头文件并使用 Logger
类记录日志:
#include <iostream>
#include "logger.h"
int main() {
Logger::init();
auto logger = Logger::getLogger("main");
logger->info("This is an info message");
logger->error("This is an error message");
return 0;
}
以上就是在 Linux C++ 开发中使用 log4cpp 和 spdlog 库进行日志记录的示例。你可以根据自己的需求选择合适的库进行日志记录。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。