1
我見過很多具有不同日誌級別的應用程序,您可以在其中使用指定的級別號碼啓用/禁用它們。應用程序日誌級別
例如,日誌級別1具有最多的細節並輸出很多細節。級別2具有較少的細節,級別3甚至不太詳細,級別4是完全禁用日誌。
你可以請教如何在C應用程序中實現?
我見過很多具有不同日誌級別的應用程序,您可以在其中使用指定的級別號碼啓用/禁用它們。應用程序日誌級別
例如,日誌級別1具有最多的細節並輸出很多細節。級別2具有較少的細節,級別3甚至不太詳細,級別4是完全禁用日誌。
你可以請教如何在C應用程序中實現?
這一切都基本歸結爲日誌功能。它會是這樣的:
#define LOG_ALL 0
#define LOG_DEBUG 1
#define LOG_INFO 2
#define LOG_WARN 3
#define LOG_ERROR 4
#define LOG_FATAL 5
#define LOG_NEXTFREE 6
static unsigned int threshold = LOG_WARN;
void logIt (unsigned int level, char *message) {
if (level >= threshold)
puts (message);
}
換句話說,如果該消息的級別足以通過日誌記錄閾值,日誌功能將只輸出一條消息。你可以這樣稱呼它:
logIt (LOG_INFO, "process starting");
logIt (LOG_FATAL, "cannot read boot sector");
在默認的閾值(警告),你會看到後者,但不是前者。
您需要添加的所有內容都是動態修改閾值的方法,您可以影響記錄的內容。
void getAndChangeLevel (unsigned int newLevel) {
if (newLevel < LOG_NEXTFREE)
threshold = newLevel;
}
當然,還有各種各樣的其他功能可能是可取的,我試圖保持代碼的簡單說明你問的具體概念。
如何將它與應用程序集成,它是否只是一直調用日誌功能,日誌功能將根據閾值來決定? – user1832809
@ user1832809,是的,就是這樣。你的代碼所做的就是調用該函數,並指示該消息應記錄在什麼級別。日誌記錄功能本身決定是否達到閾值。 – paxdiablo