如何将oat++内部日志优先级修改为PRIORITY_V?
修改Oat++内部日志优先级为PRIORITY_V的方法
- Oat++的
oatpp::base::Logger是抽象基类,默认环境使用的是oatpp::base::DefaultLogger实现。你需要先将获取到的Logger实例动态转换为DefaultLogger类型,才能调用修改日志优先级的方法。 - 具体实现代码如下:
#include "oatpp/base/logger/DefaultLogger.hpp" // 获取全局Logger实例 std::shared_ptr<oatpp::base::Logger> logger = oatpp::base::Environment::getLogger(); // 转换为DefaultLogger类型(默认环境下必然是该实现) auto defaultLogger = std::dynamic_pointer_cast<oatpp::base::DefaultLogger>(logger); if(defaultLogger) { // 设置日志优先级为PRIORITY_V(Verbose级别,最详细日志) defaultLogger->setLogPriority(oatpp::base::Logger::PRIORITY_V); } else { // 若使用了自定义Logger实现,需在自定义类中添加优先级修改接口后调用 }
- 另一种初始化时直接指定优先级的方案:
如果项目还未完成Oatpp环境初始化,可以直接创建指定优先级的Logger实例传入,避免后续修改:// 创建指定优先级的DefaultLogger auto logger = std::make_shared<oatpp::base::DefaultLogger>(oatpp::base::Logger::PRIORITY_V); // 初始化Oatpp环境时传入该Logger oatpp::base::Environment::init(logger);
内容的提问来源于stack exchange,提问作者Molitoris
相关产品推荐
相关产品推荐

