我编写了一个简单的测试应用程序,将一些内容记录到日志文件中。我正在使用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;
}
型
8条答案
按热度按时间3htmauhk1#
在我的Ubuntu机器上,我可以在
/var/log/syslog
处看到输出。在RHEL/CentOS机器上,可以在
/var/log/messages
中找到输出。这是由
rsyslog
服务控制的,所以如果由于某种原因禁用了它,您可能需要使用systemctl start rsyslog
启动它。正如其他人所指出的,您的
syslog()
输出将由/var/log/syslog
文件记录。您可以在
/var/log
上查看系统、用户和其他日志。更多详情:这是一个interesting link。
aiazj4mn2#
默认日志位置(rhel)为
一般信息:
字符串
验证消息:
型
邮件事件:
型
检查您的
/etc/syslog.conf
或/etc/syslog-ng.conf
(取决于您安装的系统日志工具)示例如下:
型
um6iljoc3#
除了公认的答案外,了解以下几点也是有用的。。
这些功能中的每一个都应该有与之关联的 * 手册页 *。
如果您运行
man -k syslog
(手册页的关键字搜索),您将得到一个手册页列表,其中引用或关于syslog字符串
您需要了解手册部分,以便进一步研究。
下面是man手册页的摘录,它解释了手册页的各个部分:
型
阅读上面的运行
型
因此,如果运行
man 3 syslog
,您将获得在代码中调用的syslog
函数的完整手册页。型
这不是一个直接的答案,但希望你会发现这是有用的。
mgdq6dx14#
您必须告诉系统要记录哪些信息以及将信息放在何处。日志记录在
/etc/rsyslog.conf
文件中配置,然后重新启动rsyslog以加载新配置。默认的日志记录规则通常在/etc/rsyslog.d/50-default.conf
文件中。ws51t4hk5#
syslog()生成日志消息,该消息将由syslogd分发。
配置syslogd的文件是/etc/syslog. conf。此文件将告诉您记录消息的位置。
如何更改此文件中的选项?给你http://www.bo.infn.it/alice/alice-doc/mll-doc/duix/admgde/node74.html
tuwxkamq6#
在Linux中,日志记录是非常可配置的,您可能希望查看您的
/etc/syslog.conf
(或者在/etc/rsyslog.d/
下)。详细信息取决于日志记录子系统和发行版。还可以查看
/var/log/
下的文件(也许可以运行dmesg
获取内核日志)。jum4pzuy7#
我在WSL(Linux的Windows子系统)下运行Ubuntu,
systemctl start rsyslog
不适合我。所以我做的是:
字符串
现在
syslog
文件将出现在/var/log/
ttvkxqim8#
一些非常重要的事情,人们没有提到,为了确定如何工作的日志应用程序在您的操作系统是检查配置文件。
基于Linux历史上的日志应用程序,以下是可用的:
/etc/syslog.conf
(第一版)/etc/rsyslog.conf
或/etc/rsyslog.d/
(大多数发行版使用的当前版本)检查配置文件,你会弄清楚日志是如何在你的系统上工作的(以及文件的位置)。
最后,要检查处理日志记录的系统单元或守护进程是什么,可以使用以下命令进行检查:
字符串
你好