LoggersConfig
Coding Style wiki
LoggersConfig 為 LoggingSystem 的日誌器配置數據 (可序列化),包含全域開關/級別/顏色與各日誌器 (LoggerSettings) 設定清單;配置可儲存為 StreamingAssets 配置文件 (Cipher/Plaintext),或於運行時透過 LoggingLauncher.SetLoggersConfig 動態套用。
| 命名空間 | OxGKit.LoggingSystem |
| 類型 | [Serializable] public class LoggersConfig |
| 原始碼 | LoggersConfig.cs |
using OxGKit.LoggingSystem;
快速上手
// 建立配置 (可傳入多組 LoggerSettings)
var loggersConfig = new LoggersConfig
(
new LoggerSettings("Game.Logger", true, LogLevel.All),
new LoggerSettings("Net.Logger", true, LogLevel.LogError, LogColor.Enabled)
);
// 套用配置並重載
LoggingLauncher.SetLoggersConfig(loggersConfig);
成員
| 成員 | 說明 |
|---|---|
public bool logMainActive | 全域開關 (Inspector: Master Logging Toggle),預設 true。 |
public LogLevel logMainLevel | 全域級別 (Inspector: Master Logging Level),預設 LogLevel.All。 |
public LogColor logMainColor | 全域顏色模式 (Inspector: Master Logging Color),預設 LogColor.EditorOnly。 |
public List<LoggerSettings> loggerSettings | 各日誌器配置清單。 |
建構子
public LoggersConfig()
public LoggersConfig(params LoggerSettings[] loggerSettings)
方法
| 方法 | 說明 |
|---|---|
| ClearLoggerSettings | 清除所有日誌器配置。 |
| AddLoggerSettings | 添加一筆日誌器配置。 |
| RemoveLoggerSettings | 移除一筆日誌器配置。 |
ClearLoggerSettings
public void ClearLoggerSettings()
AddLoggerSettings
public void AddLoggerSettings(LoggerSettings loggerSettings)
RemoveLoggerSettings
public void RemoveLoggerSettings(LoggerSettings loggerSettings)
LoggerSettings
單一日誌器配置 (可序列化)。
| 類型 | [Serializable] public class LoggerSettings |
| 原始碼 | LoggerSettings.cs |
| 成員 | 說明 |
|---|---|
public string loggerName | 日誌器名稱 (Inspector 唯讀)。 |
public bool logActive | 日誌器開關。 |
public LogLevel logLevel | 日誌器級別,預設 All。 |
public LogColor logColor | 日誌器顏色模式,預設 EditorOnly。 |
public LoggerSettings(string loggerName, bool logActive)
public LoggerSettings(string loggerName, bool logActive, LogLevel logLevel)
public LoggerSettings(string loggerName, bool logActive, LogLevel logLevel, LogColor logColor)
LogLevel
日誌級別 (Flags,可以 | 組合多個級別)。
[Flags]
public enum LogLevel
{
Off = 0,
LogDebug = 1 << 0,
LogInfo = 1 << 1,
LogWarning = 1 << 2,
LogError = 1 << 3,
LogException = 1 << 4,
All = ~0
}
// 組合範例:僅輸出 Warning + Error
LoggingLauncher.ConfigureLogger("Game.Logger", true, LogLevel.LogWarning | LogLevel.LogError);
注意 生效規則為全域與個別取交集 (G ∩ P),詳見級別規則表。
LogColor
日誌顏色模式。
public enum LogColor
{
Disabled = 0, // 不啟用顏色
Enabled = 1, // 一律啟用顏色
EditorOnly = 2 // 只在 Editor 啟用顏色 (釋出時自動剔除)
}
注意 生效規則為全域與個別取較嚴格者,詳見顏色規則表。
ConfigFileType
配置文件類型。
public enum ConfigFileType
{
Json, // JSON [Plaintext]
Bytes // BYTES [Cipher]
}
LoggerNameAttribute
日誌器名稱標記,用於自定義日誌器名稱與覆寫同名日誌器 (Override)。
| 類型 | [AttributeUsage(AttributeTargets.Class)] public class LoggerNameAttribute : Attribute |
| 原始碼 | LoggerNameAttribute.cs |
| 成員 | 說明 |
|---|---|
public string loggerName | 日誌器名稱。 |
public bool isOverride | 是否覆寫同名日誌器。 |
public LoggerNameAttribute(string loggerName)
public LoggerNameAttribute(string loggerName, bool isOverride)
[LoggerName("MyLogger")]
public class MyLogger1 : Logging { }
// Use same name to override MyLogger1
[LoggerName("MyLogger", true)]
public class OverrideMyLogger1 : Logging { }
LoggingSettings
LoggingSystem 的設定檔 (ScriptableObject),可自定義配置文件名稱、擴展名與加密金鑰。
| 類型 | public class LoggingSettings : ScriptableObject |
| 原始碼 | LoggingSettings.cs |
| 成員 | 說明 |
|---|---|
public const short CIPHER_HEADER | 配置文件頭標 (0x584F)。 |
public byte cipher | 配置文件金鑰,預設 0x42。 |
public string loggerCfgName | 配置文件名稱,預設 "LoggerConfig"。 |
public string loggerCfgExtension | 配置文件擴展名 (需包含點,如 .dat、.cfg、.json),預設 ".dat"。 |
public static LoggingSettings settings | 設定檔單例 (自動從 Resources 加載,無則使用預設值)。 |
提醒 透過 Right-Click Create/OxGKit/Create Settings/Create Logging Settings in Resources 建立設定檔資源,即可客製化配置文件名稱。