[C/C++] 在 zlog 設定檔裡新增新的 debug level

[C/C++] 在 zlog 設定檔裡新增新的 debug level

專案有用到一個叫 zlog 的模組,用來在 C 程式裡寫出 debug log 檔案~

今天接手了這個部分,發現它預設支援的 debug level 只有幾種,

像 DEBUG, INFO, NOTICE, WARN, ERROR, FATAL 等等,

但我們的 python 程式還支援了 OFF 這個 debug level (就是要關掉 debug log),

沒辦法直接對應過去~~

 

查了一下 zlog 的文件說明,雖然它沒辦法直接關掉 log,

但可以設定自己的 log level,範圍從 1~253 都可以,

所以理論上把 level 設成 253 的話,就很接近 OFF 的意思了~

(除非有 debug log 是處在 253 這個層級,但應該可能性極低…)

 

要定義一個新的 debug level,要加上 [levels] 這個 section,

例如下面就定義了一個新的 debug level 叫 OFF,對應的層級是 253,

後面的 LOG_ALERT 代表的是如果寫到 syslog 的話,會用 LOG_ALERT 這個層級:

[levels]
OFF = 253, LOG_ALERT

 

這邊要注意要遵照 global-levels-formats-rules 這個順序,

我把 section 的順序弄反了,zlog 就起不來了…

最終改好的 zlog 設定檔如下:

[global]
strict init = true
buffer min = 1024
buffer max = 2MB
rotate lock file = /tmp/myzlog.lock
default format = "%d.%us %-6V [%c:%T] - %m (%F:%L)%n"
file perms = 600
[levels]
OFF = 253, LOG_ALERT
[formats]
simple = "%m%n"
[rules]
default.*               >stdout; simple
parent.*                "mylog.log", 5MB * 3

 

心得:使用 3rd-party 的模組還真的是處處玄機 (陷阱) 呀~

 

(本頁面已被瀏覽過 208 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料