在使用 BusyBox v1.19.3 创建的 linux 内核 2.6.37.6 中找不到 "Syslog.conf"

标签 c linux syslog

在 BusyBox 和工具链的帮助下,我使用 Linux 内核 2.6.37.6 为我的 Controller 创建了一个微型操作系统。我正在其中编写一个日志记录模块(C 程序),我想要自定义日志(不同日志的自定义路径),如 /log/。 我的机器中有 syslogd 并且 /etc/syslog.conf 应该出现在我的机器中,但它不是那个地方。我在 /etc 下创建了新的 syslog.conf 但我仍然无法在所需位置找到我的日志。

但是如果我运行命令 syslogd -O/log/Controller.log 所有日志开始重定向到这个(指定文件)。所以我想知道这个 syslogdconfiguration file 在哪里 我找不到它的配置文件。

有什么方法可以让我为日志编写模块(程序)而不需要 syslog.conf 是的,当然是传统的 printf 方式。问题是,对于 log 的自定义路径,我们需要在 openlog() 中提供键名 LOG_LOCAL1 作为参数,但它不起作用

我遵循了这个例子中的程序 http://www.codealias.info/technotes/syslog_simple_example

最佳答案

如果您使用的是 Busybox 的 syslogd,则不支持 syslog.conf,所有日志默认写入/var/log/messages。

您可以修改位于 busybox/sysklogd/syslogd.c 的 busybox 中的 syslogd 代码以实现您想要的行为

您可以像这样更改 syslogd 的代码

static const struct init_globals init_data = {
    .logFile = {
        .path = "your desire path",
        .fd = -1,
    },

关于在使用 BusyBox v1.19.3 创建的 linux 内核 2.6.37.6 中找不到 "Syslog.conf",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23148496/

相关文章:

c - 如何在代码不困惑的情况下获取并分析文件中的数据?

过去 12 个月的晶体排序

python - 使用命令行参数通过 Cython 运行 python 代码

检查是否为我的 USB 设备安装了驱动程序

regex - 条件正则表达式,如何提取匹配的子集?

在 Windows 上找不到 syslog.h

regex - bash - 如何从 bash 脚本中将换行符传递给 perl?

c++ - 以附加模式打开管道

python - Cython 代码 : Python. h 没有那个文件或目录

ssl - Syslog-ng 证书问题