微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法将系统日志消息redirect到标准输出?

我有一个可以以两种模式运行的应用程序,可以是CLI,也可以是守护进程。

我正在使用syslog()进行日志logging。 但是,在CLI模式下运行时,我希望所有的日志logging,除了那些标记为LOG_DEBUG的日志,都要发送到控制台而不是日志logging。

我试图使用setlogmask() ,但似乎没有redirect到控制台。

做这个的最好方式是什么?

syslog存储错误消息

在Linux上将std :: coutredirect到syslog

系统日志性能是否可以改进?

Rsyslog使用TCP将日志消息定向到端口5000上的本地系统日志主机

通过syslog-ng转发日志

系统日志:如果存储空间较less,是否删除旧日志

在syslog消息中添加一年(linux)

linux系统日志如何工作?

如何避免从控制台上打印的syslog广播消息

二进制代码在kern.log和

正如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,args); else vprintf(format,args); } va_end(args); }

作为GNU特定的解决方案,我建议使用openlog(NULL,LOG_PERROR,your_facility) 。 不可定制(只在stderr上重复)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐