[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 的模組還真的是處處玄機 (陷阱) 呀~
(本頁面已被瀏覽過 229 次)