HazelEngine 学习记录 - Logging

Logging

一个完整的引擎自然需要一个日志系统来进行各种状态的显示,便于我们查看程序的运行状态和 debug,在这里主要使用的是 github 上面的开源项目 spdlog

  • 添加 spdlog 根目录终端输入

    git submodule add https://github.com/gabime/spdlog Hazel/vendor/spdlog

    • 包含 spdlog 目录-在 Hazel 和 SandBox 属性页,所有配置,常规,附加包含目录 $(Solution)Hazel\vendor\spdlog\include;
  • 创建 Log 类

//Log.h
#pragma once

#include <memory>
#include "Core.h"
#include "spdlog/spdlog.h"


namespace Hazel {
	class HAZEL_API Log
	{
	public:
		static void Init();

		inline static std::shared_ptr<spdlog::logger>& GetCoreLogger() { return s_CoreLogger; }
		inline static std::shared_ptr<spdlog::logger>& GetClientLogger() { return s_ClientLogger; }

	private:
		static std::shared_ptr<spdlog::logger> s_CoreLogger;		//log for engine
		static std::shared_ptr<spdlog::logger> s_ClientLogger;		//log for client
	};

}
// Log.cpp
#include "Log.h"

namespace Hazel {
	std::shared_ptr<spdlog::logger> Log::s_CoreLogger;    //这里没加Log:: 类声明导致LNK2001 报错!!
	std::shared_ptr<spdlog::logger> Log::s_ClientLogger;

	void Log::Init() {
    spdlog::set_pattern("%^[%T] %n: %v%$");  //time
		s_CoreLogger = spdlog::stdout_color_mt("HAZEL");
		s_CoreLogger->set_level(spdlog::level::trace);

		s_ClientLogger = spdlog::stdout_color_mt("APP");
		s_ClientLogger->set_level(spdlog::level::trace);
  }
}

//Core log macros
#define HZ_CORE_TRACE(...)		::Hazel::Log::GetCoreLogger()->trace(__VA_ARGS__)
#define HZ_CORE_WARN(...)		::Hazel::Log::GetCoreLogger()->warn(__VA_ARGS__)
#define HZ_CORE_INFO(...)		::Hazel::Log::GetCoreLogger()->info(__VA_ARGS__)
#define HZ_CORE_ERROR(...)		::Hazel::Log::GetCoreLogger()->error(__VA_ARGS__)
#define HZ_CORE_FATAL(...)		::Hazel::Log::GetCoreLogger()->fatal(__VA_ARGS__)

//Client log macros
#define HZ_TRACE(...)			::Hazel::Log::GetClientLogger()->trace(__VA_ARGS__)
#define HZ_WARN(...)			::Hazel::Log::GetClientLogger()->warn(__VA_ARGS__)
#define HZ_INFO(...)			::Hazel::Log::GetClientLogger()->info(__VA_ARGS__)
#define HZ_ERROR(...)			::Hazel::Log::GetClientLogger()->error(__VA_ARGS__)
#define HZ_FATAL(...)			::Hazel::Log::GetClientLogger()->fatal(__VA_ARGS__)
  • main 函数中调用
int main(int argc, char** argv) 
{
	Hazel::Log::Init();
	HZ_CORE_WARN("Initialized Log");
	int a = 5;
	HZ_INFO("Hello! Var={0}", a);
	auto app = Hazel::CreateApplication();
	app->Run();
	delete app;
}
  • 运行效果:
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 想要下载commons-logging,你可以按照以下步骤进行操作: 1. 打开浏览器并搜索"commons-logging下载"或直接访问Apache官方网站。 2. 在搜索结果中找到合适的下载链接或导航至Apache官方的commons-logging页面。 3. 确保选择与你的操作系统(如Windows、Linux、Mac等)和所需的commons-logging版本相匹配的下载选项。 4. 点击下载链接,浏览器通常会将文件保存在预设的下载文件夹中。你可以选择保存文件的位置。 5. 下载完成后,你可以在下载文件夹或保存的位置找到该文件。 6. 解压缩下载文件。可以通过右键点击文件并选择"解压缩"或使用压缩工具进行解压缩操作。 7. 解压缩后,你将获得commons-logging的目录和文件。你可以根据自己的需求,将这些文件复制到你的项目中。 8. 完成以上步骤后,你就成功地下载了commons-logging。你可以根据实际需要在你的项目中使用它,通过日志记录和管理方式进行必要的调试和追踪。 请注意,以上步骤仅是一般指导,具体情况可能因你的操作系统、下载源和文件版本而有所不同。为了确保正确地下载并使用commons-logging,建议你参考Apache官方的文档和说明。 ### 回答2: 要下载commons-logging,可以按照以下步骤进行操作: 1. 打开包含commons-logging的官方网站或者任意可信的软件下载网站。 2. 在网站的搜索栏中输入“commons-logging”,然后点击搜索按钮。 3. 在搜索结果中找到commons-logging,并且确认这是最新的稳定版本。 4. 点击下载按钮,开始下载commons-logging的安装包。 5. 下载完成后,打开下载目录,找到刚刚下载的commons-logging安装包。 6. 双击安装包,启动安装程序。 7. 在安装程序中,阅读并接受软件许可协议。 8. 选择安装位置,可以保留默认设置,或者根据个人需求选择其他位置。 9. 点击“安装”按钮,开始安装commons-logging。 10. 完成安装后,关闭安装程序。 现在,你已经成功地下载了commons-logging。你可以在你的项目中使用commons-logging来实现日志记录功能,提高程序的可维护性和调试性。 ### 回答3: commons-logging 是一个开源的Java日志库,用于在Java应用程序中进行日志记录。它提供了一种简单且灵活的方式来管理应用程序中的日志输出。 要下载commons-logging,首先需要访问其官方网站或源代码管理平台,如Apache官方网站或GitHub。在该网站上,你可以找到commons-logging的最新版本,并选择适合你的需求的下载链接。 下载commons-logging的最常见方式是通过二进制包(.jar文件)。你可以选择下载包含所有必需文件的完整包,也可以下载仅包含核心库的基本包。选择完整包可以确保你拥有所有可用的功能和依赖项,但基本包可能更适合只需基本日志记录功能的应用程序。 下载完成后,你可以将commons-logging的jar文件添加到你的项目中。具体操作方式取决于你所使用的集成开发环境(IDE)或构建工具。如果你使用的是IDE,可以通过在项目配置中添加外部依赖项来导入该jar文件。如果你使用的是构建工具如Gradle或Maven,你可以在项目配置文件中添加对commons-logging的依赖项,然后重新构建你的项目。 一旦commons-logging成功下载并添加到你的项目中,你就可以在代码中使用其提供的API来记录日志信息。这些API包括不同级别的日志记录方法,如debug、info、warn和error等。你可以根据需要选择适当的级别,并使用合适的参数记录日志消息。 总之,为了下载commons-logging,你需要找到官方网站或源代码管理平台上的下载链接,选择合适的包并将其添加到你的项目中。然后,你可以使用commons-logging的API来记录和管理你的日志信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值