我编写了一个简单的测试应用程序来在日志(log)文件中记录一些内容.我使用的是Linux mint,在应用程序执行后,我try 使用以下命令查看日志(log):

tail -n 100 /var/log/messages

但是文件消息并不存在,也没有经过测试或其他什么.下面你可以找到我的代码.也许我做错了什么,文件没有存储在那里,或者我需要在LinuxMint中启用登录.

#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的输出.

在RHEL/CentOS机器上,输出为/var/log/messages.

这是由rsyslog服务控制的,所以如果出于某种原因禁用了它,您可能需要从systemctl start rsyslog启动它.

正如其他人所指出的,您的syslog()输出将由/var/log/syslog文件记录.
您可以在/var/log查看系统、用户和其他日志(log).

更多细节:这里有一个interesting link.

C++相关问答推荐

在Intel HD图形上使用SPIR-V但在NVIDIA上不使用SPIR-V时,GLSL统一名称为空

如何从TPS特定的TGPT_PUBLIC数据 struct 中以OpenSSL的EVP_PKEY

如何在C中的空指针函数中传递浮点值

设计处理各种数据类型的方法和数据 struct

错误:C中需要参数声明符

使用单个字节内的位字段

将常量转换为指针会增加.数据大小增加1000字节

使用双指针动态分配和初始化2D数组

struct -未知大小

理解C版宏(看起来像未声明的变量?)

为什么将函数名括在括号中会禁用隐式声明?

如何有效地编写代码来判断两个元素数量相同的数组即使在不同的位置也具有相同的元素?

不同出处的指针可以相等吗?

在libwget中启用Cookie会导致分段故障

试图创建一个基本的Word克隆,但遇到了障碍

Printf()在C中打印终止字符之后的字符,我该如何解决这个问题?

隐藏测试用例无法在c程序中计算位数.

Leet代码运行时错误:代码不会在Leet代码上编译,而是在其他编译器中编译,如netbeans和在线编译器

如何用用户输入的多个字符串填充数组?

与 C 相比,C++ 中无副作用的无限循环的好处是 UB?