我有一个可以在两种模式下运行的应用程序,可以是CLI,也可以是守护进程.
我正在syslog()用于记录.但是,在CLI模式下运行时,我希望所有日志记录(标记除外)都将LOG_DEBUG消息发送到控制台而不是记录.
我试图使用setlogmask(),但似乎没有重定向到控制台.
做这个的最好方式是什么?
正如 maverik 的评论中所建议的,我编写了一个围绕 syslog 的包装器,用于确定是否将输出发送到日志或控制台。这是以防万一有人需要这个。
void mylog (int level, const char *format, ...)
{
va_list args;
va_start (args, format);
if (remote)
{
vsyslog(level, format, args);
}
else
{
if (level == LOG_DEBUG)
vsyslog(level, format, args);
else
vprintf(format, args);
}
va_end(args);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3126 次 |
| 最近记录: |