找不到/etc/syslog.conf解决办法

1、首先我们需要先确认我们的开发板上是否安装了syslog服务,在开发板的文件系统下输入syslogd help命令查看如果不支持就是busybox的版本太低了,如图出现this version of syslogd ignores /etc/syslog.conf就是这个版本的syslogd不支持/etc/syslog.conf,需要我们重新构建一个支持/etc/syslog.conf的linux系统。

找不到/etc/syslog.conf解决办法_第1张图片

2、配置busybox使其支持syslog.conf

在buildroot目录下运行make busybox-mencuconfig命令进行配置

在这里插入图片描述
找不到/etc/syslog.conf解决办法_第2张图片
找不到/etc/syslog.conf解决办法_第3张图片
选择保存后,在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增加到根文件系统
找不到/etc/syslog.conf解决办法_第4张图片
3)然后在syslog.conf中写入消息处理配置文档,示例如下:
在这里插入图片描述
4)在buildroot目录下进行重新编译:
make busybox-dirclean && make -j4
在这里插入图片描述
5)烧写到arm板卡,进行测试
可以看到此时的syslogd已经支持/etc/syslog.conf
找不到/etc/syslog.conf解决办法_第5张图片
而且根文件目录已经有Syslog.conf文件
在这里插入图片描述
运行测试代码后发现已经生成kernel.log和local.log文件

5、 Syslog测试代码


#include 
#include 
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;
}






























你可能感兴趣的:(linux,buildroot,linux,syslog)