mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 实现了完整的日志系统,包括ILog接口和ConsoleLogger实现 - 添加了LogConfig配置类和LoggerFactory工厂类 - 在架构、系统、事件、IOC容器等核心组件中集成了日志记录功能 - 添加了NullLogger和CompositeLogger支持 - 创建了详细的日志使用示例和文档 - 实现了日志级别的分类配置和彩色输出功能
68 lines
1.9 KiB
C#
68 lines
1.9 KiB
C#
using GFramework.Core.architecture;
|
|
using GFramework.Core.logging;
|
|
using GFramework.Core.rule;
|
|
|
|
namespace GFramework.Core.system;
|
|
|
|
/// <summary>
|
|
/// 抽象系统基类,实现系统接口的基本功能
|
|
/// 提供架构关联、初始化和销毁机制
|
|
/// </summary>
|
|
public abstract class AbstractSystem : ISystem
|
|
{
|
|
private IArchitecture _mArchitecture;
|
|
|
|
/// <summary>
|
|
/// 获取当前系统所属的架构实例
|
|
/// </summary>
|
|
/// <returns>返回系统关联的架构对象</returns>
|
|
IArchitecture IBelongToArchitecture.GetArchitecture()
|
|
{
|
|
return _mArchitecture;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置系统所属的架构实例
|
|
/// </summary>
|
|
/// <param name="architecture">要关联的架构对象</param>
|
|
void ICanSetArchitecture.SetArchitecture(IArchitecture architecture)
|
|
{
|
|
_mArchitecture = architecture;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 系统初始化方法,调用抽象初始化方法
|
|
/// </summary>
|
|
void ISystem.Init()
|
|
{
|
|
var logger = Log.CreateLogger("System");
|
|
logger.Debug($"Initializing system: {GetType().Name}");
|
|
|
|
OnInit();
|
|
|
|
logger.Info($"System initialized: {GetType().Name}");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 系统销毁方法,调用抽象销毁方法
|
|
/// </summary>
|
|
void ISystem.Destroy()
|
|
{
|
|
var logger = Log.CreateLogger("System");
|
|
logger.Debug($"Destroying system: {GetType().Name}");
|
|
|
|
OnDestroy();
|
|
|
|
logger.Info($"System destroyed: {GetType().Name}");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 抽象初始化方法,由子类实现具体的初始化逻辑
|
|
/// </summary>
|
|
protected abstract void OnInit();
|
|
|
|
/// <summary>
|
|
/// 抽象销毁方法,由子类实现具体的资源清理逻辑
|
|
/// </summary>
|
|
protected virtual void OnDestroy() { }
|
|
} |