setlogmask

基本介紹

  • 中文名:setlogmask
  • 頭檔案:#include <syslog.h>
  • 函式原型:int setlogmask(int maskpri);
  • 返回值:返回先前的日誌優先權掩碼。
函式說明,範例,

函式說明

進程有一個日誌優先權掩碼,該掩碼決定哪些調用syslog(3)可能被記錄。所有其他調用都將被忽略。日誌是為在掩碼中設定相應位的優先權啟用的。最初的掩碼是這樣的,日誌是為所有優先權啟用的。
setlogmask()函式為當前的進程設定這個日誌掩碼,並返回先前的掩碼。如果掩碼參數為0,那么當前的日誌掩碼不會被修改。
這8個優先權分別是LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO and LOG_DEBUG.與優先權p相對應的位是LOG_MASK(p)。一些系統還提供了一個宏LOG_UPTO(p),以在上面的列表中包括p的所有優先權。
A process has a log priority mask that determines which calls to syslog(3) may be logged. All other calls will be ignored. Logging is enabled for the priorities that have the corresponding bit set in mask. The initial mask is such that logging is enabled for all priorities.
The setlogmask() function sets this logmask for the current process, and returns the previous mask. If the mask argument is 0, the current logmask is not modified.
The eight priorities are LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO and LOG_DEBUG. The bit corresponding to a priority p is LOG_MASK(p). Some systems also provide a macro LOG_UPTO(p) for the mask of all priorities in the above list up to and including p.

範例

#include <syslog.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
int logmask;
openlog("logmask", LOG_PID|LOG_CONS, LOG_USER);
syslog(LOG_INFO,"informative message, pid = %d", getpid());
syslog(LOG_DEBUG,"debug message, should appear");
logmask = setlogmask(LOG_UPTO(LOG_NOTICE));
syslog(LOG_DEBUG,"debug message, should not appear");
exit(0);
}

熱門詞條

聯絡我們