我编写了一个简单的测试应用程序,以将某些内容记录到日志文件中。我正在使用 linux mint ,在应用程序执行后,我尝试使用以下命令查看日志:
tail -n 100 /var/log/messages
但是文件消息既不经过测试也不存在。在下面可以找到我的代码。也许我做错了什么,文件没有存储在那儿,或者我需要启用Linux Mint中的登录功能。
#include <stdio.h> #include <stdlib.h> #include <syslog.h> void init_log() { setlogmask(LOG_UPTO(LOG_NOTICE)); openlog("testd",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1); } int main(void) { init_log(); printf("Session started!"); syslog(LOG_NOTICE, "Session started!!"); closelog(); return EXIT_SUCCESS; }
在我的Ubuntu机器上,我可以在看到输出/var/log/syslog。
/var/log/syslog
在RHEL / CentOS计算机上,可在中找到输出/var/log/messages。
/var/log/messages
这是由rsyslog服务控制的,因此,如果由于某种原因而被禁用,则可能需要使用来启动它systemctl start rsyslog。
rsyslog
systemctl start rsyslog
如其他人所述,您的syslog()输出将由/var/log/syslog文件记录。 您可以在看到系统,用户和其他日志/var/log。
syslog()
/var/log
有关更多详细信息:这是一个有趣的链接。