![]() |
mFrame
|
日誌接收器類別,負責實際的日誌輸出處理。 更多...
#include <SinkLogger.h>
公開型態 | |
| enum struct | Level : uint8 { SEVERE = 1 , WARNING = 2 , INFO = 3 , CONFIG = 4 , FINE = 5 , FINER = 6 , FINEST = 7 } |
| 日誌級別列舉,定義日誌訊息的重要性層級。 更多... | |
公開方法(Public Methods) | |
| SinkLogger (ufm::io::PrintStream &printStream) | |
| 建構 SinkLogger 物件,關聯到指定的輸出流。 | |
| virtual | ~SinkLogger (void) override |
| 解構 SinkLogger 物件,清理相關資源。 | |
| operator ufm::io::PrintStream & () | |
| 隱式轉型為 ufm::io::PrintStream&,允許直接使用 SinkLogger 作為 PrintStream。 | |
| ufm::io::PrintStream & | log (Level level, const char *vName="", const char *message="") |
| 記錄一條指定級別的日誌訊息,包含來源名稱和訊息內容。 | |
| SinkLogger & | setLevel (Level level) |
| 設定日誌輸出的最低級別,低於此級別的訊息將被忽略。 | |
| Level | getLevel (void) const |
| 取得目前設定的日誌輸出級別。 | |
| ufm::io::PrintStream & | printStream (void) |
| 取得原始的 PrintStream 物件參考,不受日誌級別過濾影響。 | |
| uint64 | getTimeStamp (void) const |
| 取得當前時間戳,精確到毫秒。 | |
公開方法(Public Methods) 繼承自 ufm::lang::Object | |
| void * | operator new (size_t n) |
| 使用運算子 new 分配記憶體 | |
| void * | operator new (size_t n, void *p) |
| 在指定記憶體上調用運算子 new | |
| virtual ufm::lang::Object & | getObject (void) override |
| 取得對應的 Object 物件 | |
| void | delay (int milliseconds) const |
| 延遲指定的毫秒數進行執行緒等待 | |
| bool | equals (Object *object) const |
| 判斷與另一物件是否為相同參照(指標型態比較) | |
| bool | equals (Object &object) const |
| 判斷與另一物件是否為相同參照(參照型態比較) | |
| void | wait (void) const |
| 使當前線程等待直到被通知 | |
| bool | wait (int timeout) const |
| 等待通知或超時 | |
| bool | yield (void) const |
| 讓執行緒讓渡控制權給同優先權的下一個執行緒 | |
| int | lock (void) const |
| 核心鎖定,鎖定期間禁止線程切換 | |
| int | unlock (void) const |
| 核心解鎖 | |
| ufm::sys::Thread * | currentThread (void) const |
| 取得當前執行緒指標 | |
| virtual int | hashcode (void) const |
| 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
公開方法(Public Methods) 繼承自 ufm::lang::Interface | |
| virtual | ~Interface (void)=default |
| 虛擬析構函式 | |
日誌接收器類別,負責實際的日誌輸出處理。
SinkLogger 是日誌系統的核心類別,管理日誌的輸出流、級別控制和格式化。 所有日誌訊息最終都會透過此類別輸出到指定的 PrintStream。 支援日誌級別過濾,只有達到設定級別的訊息才會被輸出。
|
strong |
日誌級別列舉,定義日誌訊息的重要性層級。
日誌級別由低到高排序,數值越小表示越重要的訊息。 當設定輸出級別時,只有等於或低於該級別的訊息才會被輸出。
級別說明:
| 列舉值 | |
|---|---|
| SEVERE | 嚴重錯誤,系統可能無法正常運作。 |
| WARNING | 警告訊息,可能導致問題但不影響基本功能。 |
| INFO | 一般資訊,記錄系統正常運作狀態。 |
| CONFIG | 配置相關訊息,記錄系統設定資訊。 |
| FINE | 基本除錯資訊,用於一般的問題追蹤。 |
| FINER | 詳細除錯資訊,提供更多的執行細節。 |
| FINEST | 最詳細除錯資訊,包含所有執行步驟。 |
| ufm::util::SinkLogger::SinkLogger | ( | ufm::io::PrintStream & | printStream | ) |
建構 SinkLogger 物件,關聯到指定的輸出流。
| printStream | 輸出流物件,所有日誌訊息將輸出到此流。 |
|
inline |
取得目前設定的日誌輸出級別。
|
inline |
取得當前時間戳,精確到毫秒。
此方法返回自系統啟動以來的時間戳,單位為毫秒。 用於日誌輸出時的時間標記,便於追蹤事件發生的時間。
| ufm::io::PrintStream & ufm::util::SinkLogger::log | ( | Level | level, |
| const char * | vName = "", | ||
| const char * | message = "" ) |
記錄一條指定級別的日誌訊息,包含來源名稱和訊息內容。
| level | 日誌級別,決定訊息的重要性。 |
| vName | 日誌來源名稱,用於識別訊息來源,預設為空字串。 |
| message | 日誌訊息內容,預設為空字串。 |
|
inline |
隱式轉型為 ufm::io::PrintStream&,允許直接使用 SinkLogger 作為 PrintStream。
這樣可以方便地將 SinkLogger 用於需要 PrintStream 的上下文中。
|
inline |
取得原始的 PrintStream 物件參考,不受日誌級別過濾影響。
此方法回傳的 PrintStream 會直接輸出到底層流,完全繞過日誌級別控制。 適用於需要強制輸出、系統訊息或緊急狀況下的直接輸出。
|
inline |
設定日誌輸出的最低級別,低於此級別的訊息將被忽略。
| level | 欲設定的日誌級別,只有此級別或更高級別的訊息才會被輸出。 |