本文主要是介绍找不到/etc/syslog.conf解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、首先我们需要先确认我们的开发板上是否安装了syslog服务,在开发板的文件系统下输入syslogd help命令查看如果不支持就是busybox的版本太低了,如图出现this version of syslogd ignores /etc/syslog.conf就是这个版本的syslogd不支持/etc/syslog.conf,需要我们重新构建一个支持/etc/syslog.conf的linux系统。
2、配置busybox使其支持syslog.conf
在buildroot目录下运行make busybox-mencuconfig命令进行配置
选择保存后,在buildroot目录下运行make busybox-update-config进行配置更新。
3、syslog.conf写入格式
/etc/syslog.conf文件中的一项配置记录由“选项”(selector)和“动作”(action)两个部分组成,两者间用tab制表符进 行分隔(使用空格间隔是无效的)。而“选项”又由一个或多个形如“类型.级别”格式的保留字段组合而成,各保留字段间用分号分隔。如下行所示:
类型.级别 TAB
动作
4、配置syslog.conf
1)在package/busybox目录下创建syslog.conf文件
2)然后在busybox.mk添加如下代码,将syslog.conf增加到根文件系统
3)然后在syslog.conf中写入消息处理配置文档,示例如下:
4)在buildroot目录下进行重新编译:
make busybox-dirclean && make -j4
5)烧写到arm板卡,进行测试
可以看到此时的syslogd已经支持/etc/syslog.conf
而且根文件目录已经有Syslog.conf文件
运行测试代码后发现已经生成kernel.log和local.log文件
5、 Syslog测试代码
#include <stdio.h>
#include <syslog.h>
int main(int argc, char **argv)
{openlog("MyMsgMARK", LOG_CONS | LOG_PID, LOG_LOCAL0);syslog(LOG_EMERG, "This is a syslog test message generated by program '%s'/n", argv[0]);openlog("logtest", LOG_CONS | LOG_PID, LOG_USER);syslog(LOG_INFO, "PID information, pid=%d\n", getpid());closelog();return 0;
}
这篇关于找不到/etc/syslog.conf解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!