LoggingLauncher
Coding Style wiki
LoggingLauncher 是 LoggingSystem 的日志部署启动器 (MonoBehaviour 单例),负责日志器的初始与加载配置文件 (StreamingAssets),并提供全局 (Master) 与个别日志器的动态配置 API;可通过 Samples 导入 LoggingLauncher Prefab 拖拽至场景激活 (仅需激活一次)。
| 命名空间 | OxGKit.LoggingSystem |
| 类型 | public class LoggingLauncher : MonoBehaviour |
| 源码 | LoggingLauncher.cs |
using OxGKit.LoggingSystem;
注意 标注 [StartCoroutine] 的方法为包装协程的便捷调用;各方法皆有对应的 [Async] 版本 (IEnumerator),可自行以协程等待完成时机。
快速上手
using OxGKit.LoggingSystem;
// 场景上已放置 LoggingLauncher Prefab (Initialize On Awake)
// -> 会自动 InitLoggers + 加载 StreamingAssets 配置文件
// 动态配置单一日志器
LoggingLauncher.ConfigureLogger("Game.Logger", true, LogLevel.LogWarning | LogLevel.LogError);
// 全局开关
LoggingLauncher.ToggleMasterLogging(false);
// 自定义配置 (动态配置日志器)
var loggersConfig = new LoggersConfig
(
new LoggerSettings("Game.Logger", true, LogLevel.All)
);
LoggingLauncher.SetLoggersConfig(loggersConfig);
通用规则
初始流程
- Initialize On Awake (默认):LoggingLauncher 于
Awake自动执行InitLoggers(反射收集所有Logging实现) 并尝 试加载 StreamingAssets 配置文件。 - 手动初始 (HybridCLR):取消 Inspector 上的 "Initialize On Awake" 选项,自行调用 CreateLogger 逐一注册,最后调用 TryLoadLoggers 应用配置。
重要 搭配 HybridCLR 有主工程跟热更工程的区分时,必须手动拆分创建 AOT 跟 Hotfix 的 Loggers 初始流程 (Hotfix 工程的 Loggers 需在 Hotfix 工程中初始)。
配置生效条件
重要 仅于 UNITY_EDITOR 或已定义 OXGKIT_LOGGER_ON 宏时,才会进行日志器加载与输出,否则会提示 Not enabled LoggingSystem by symbol [OXGKIT_LOGGER_ON]。
成员
| 成员 | 说明 |
|---|---|
public bool initLoggersOnAwake | 是否于 Awake 自动初始 (Inspector: Initialize On Awake),搭配 HybridCLR 手动初始时需取消。 |
public LoggersConfig loggersConfig | 当前的日志器配置数据 (LoggersConfig)。 |
public static ConfigFileType currentConfigFileType | 当前配置文件类型 (Json / Bytes),默认 Bytes。 |
日志器管理
方法总览
| 方法 | 说明 |
|---|---|
| InitLoggers | 反射收集并初始所有日志器。 |
| ClearLoggers | 清除所有已注册日志器。 |
| CreateLogger | 手动注册单一日志器 (HybridCLR 流程)。 |
| TryInitLoggers | 初始所有日志器并加载配置文件。 |
| TryLoadLoggers | 依配置文件重载日志器设置。 |
InitLoggers
public static void InitLoggers()
以反射收集所有 Logging 实现类并创建实例 (含 LoggerName 的名称与覆写处理)。
ClearLoggers
public static void ClearLoggers()
清除所有已注册的日志器缓存。
CreateLogger
public static void CreateLogger<TLogging>() where TLogging : Logging, new()
手动注册单一日志器,用于 HybridCLR 手动拆分 AOT / Hotfix 初始流程 (避免反射收集不到热更工程的类型)。
// HybridCLR (必须取消 LoggingLauncher 上的 "Initialize On Awake" 选项):
LoggingLauncher.CreateLogger<LoggingDemoLogger1>();
LoggingLauncher.CreateLogger<LoggingDemoLogger2>();
LoggingLauncher.TryLoadLoggers();
TryInitLoggers
// [StartCoroutine]
public static void TryInitLoggers()
// [Async]
public static IEnumerator TryInitLoggersAsync()
初始所有日志器 (InitLoggers) 并加载 StreamingAssets 配置文件应用设置 (等同 Awake 自动初始流程)。
TryLoadLoggers
// [StartCoroutine]
public static void TryLoadLoggers()
// [Async]
public static IEnumerator TryLoadLoggersAsync()
依配置文件重载日志器设置;新增或移除 Logger 后皆需调用此方法进行重载。
全局配置 (Master)
方法总览
| 方法 | 说明 |
|---|---|
| ToggleMasterLogging | 全局开关 (启用/停用所有日志器)。 |
| LevelMasterLogging | 设置全局日志级别。 |
| ColorMasterLogging | 设置全局日志颜色模式。 |
ToggleMasterLogging
// [StartCoroutine]
public static void ToggleMasterLogging(bool logMainActive)
// [Async]
public static IEnumerator ToggleMasterLoggingAsync(bool logMainActive)
切换全局开关 (Master Logging Toggle),关闭时所有日志器皆不输出。
LevelMasterLogging
// [StartCoroutine]
public static void LevelMasterLogging(LogLevel logMainLevel)
// [Async]
public static IEnumerator LevelMasterLoggingAsync(LogLevel logMainLevel)
设置全局级别 (Master Logging Level),与个别级别取交集后生效 (详见级别规则表)。
ColorMasterLogging
// [StartCoroutine]
public static void ColorMasterLogging(LogColor logMainColor)
// [Async]
public static IEnumerator ColorMasterLoggingAsync(LogColor logMainColor)
设置全局颜色模式 (Master Logging Color),与个别颜色模式取较严格者生效 (详见颜色规则表)。
个别配置
方法总览
| 方法 | 说明 |
|---|---|
| ConfigureLogger | 配置指定日志器的开关/级别/颜色。 |
| ConfigureAllLoggers | 一次配置所有日志器的开关/级别/颜色。 |
| SetLoggersConfig | 以自定义 LoggersConfig 覆盖当前配置并重载。 |
ConfigureLogger
// [StartCoroutine]
public static void ConfigureLogger(string loggerName, bool logActive, LogLevel logLevel = LogLevel.All, LogColor logColor = LogColor.EditorOnly)
// [Async]
public static IEnumerator ConfigureLoggerAsync(string loggerName, bool logActive, LogLevel logLevel = LogLevel.All, LogColor logColor = LogColor.EditorOnly)
配置指定名称日志器的开关、级别与颜色模式,配置后自动重载。
LoggingLauncher.ConfigureLogger("Game.Logger", true, LogLevel.LogWarning | LogLevel.LogError);
ConfigureAllLoggers
// [StartCoroutine]
public static void ConfigureAllLoggers(bool logActive, LogLevel logLevel = LogLevel.All, LogColor logColor = LogColor.EditorOnly)
// [Async]
public static IEnumerator ConfigureAllLoggersAsync(bool logActive, LogLevel logLevel = LogLevel.All, LogColor logColor = LogColor.EditorOnly)
一次配置所有日志器的开关、级别与颜色模 式,配置后自动重载。
SetLoggersConfig
// [StartCoroutine]
public static void SetLoggersConfig(LoggersConfig loggersConfig)
// [Async]
public static IEnumerator SetLoggersConfigAsync(LoggersConfig loggersConfig)
以自定义的 LoggersConfig 覆盖当前配置并重载 (动态配置日志器)。
var loggersConfig = new LoggersConfig
(
new LoggerSettings("LoggingDemo.Logger1", true, LogLevel.LogDebug),
new LoggerSettings("LoggingDemo.Logger2", true, LogLevel.LogWarning),
new LoggerSettings("LoggingDemo.Logger3", true, LogLevel.Off)
);
LoggingLauncher.SetLoggersConfig(loggersConfig);
配置重载
方法总览
| 方法 | 说明 |
|---|---|
| ReloadLoggersConfig | (实例) 重新初始日志器并同步配置清单。 |
| ReloadFromLoggersConfig | (实例) 从配置文件重新加载配置。 |
| ResetLoggersConfig | (实例) 清空配置并重建。 |
| ReloadLoggersConfigAndSet | 同步配置清单与当前日志器实现 (新增/移除比对)。 |
ReloadLoggersConfig
// [StartCoroutine]
public void ReloadLoggersConfig(Action<LoggersConfig> result = null)
// [Async]
public IEnumerator ReloadLoggersConfigAsync(Action<LoggersConfig> result = null)
(实例方法) 重新初始日志器并同步配置清单,完成后通过 result 返回当前配置。
ReloadFromLoggersConfig
// [StartCoroutine]
public void ReloadFromLoggersConfig(Action<LoggersConfig> result = null)
// [Async]
public IEnumerator ReloadFromLoggersConfigAsync(Action<LoggersConfig> result = null)
(实例方法) 从 StreamingAssets 配置文件重新加载配置。
ResetLoggersConfig
// [StartCoroutine]
public void ResetLoggersConfig(Action<LoggersConfig> result = null)
// [Async]
public IEnumerator ResetLoggersConfigAsync(Action<LoggersConfig> result = null)
(实例方法) 清空当前配置并以默认值重建。
ReloadLoggersConfigAndSet
public static void ReloadLoggersConfigAndSet(LoggersConfig loggersConfig, Action<LoggersConfig> result)
将传入的配置清单与当前已注册日志器实现进行比对同步 (自动补上新日志器、移除不存在的日志器),完成后通过 result 返回。