跳至主要内容

LoggersConfig

重要 注意 提醒

Coding Style wiki


LoggersConfigLoggingSystem 的日誌器配置數據 (可序列化),包含全域開關/級別/顏色各日誌器 (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 建立設定檔資源,即可客製化配置文件名稱。