在 BusyBox 和工具链的帮助下,我使用 Linux 内核 2.6.37.6 为我的 Controller 创建了一个微型操作系统。我正在其中编写一个日志记录模块(C 程序),我想要自定义日志(不同日志的自定义路径),如 /log/
。
我的机器中有 syslogd
并且 /etc/syslog.conf
应该出现在我的机器中,但它不是那个地方。我在 /etc
下创建了新的 syslog.conf
但我仍然无法在所需位置找到我的日志。
但是如果我运行命令 syslogd -O/log/Controller.log
所有日志开始重定向到这个(指定文件)。所以我想知道这个 syslogd
的 configuration 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/