我使用下面的配置来配置/etc/syslog.conf
*.* @10.10.10.2:514
*.* @@10.10.10.2:514
并通过以下代码进行了登录
openlog("Test-Msg", LOG_PID, LOG_LOCAL0);
for (int i = 0; i <10; i++)
{
syslog(LOG_ALERT, "My msg %d", i);
std::cout<<"-------------Writing Syslog "<<i<<"\n";
}
closelog();
但它没有转发到远程服务器,相反它会创建一个文件"@ 10.10.10.2:514"和"@ @10.10.10.2:514",并将所有信息记录在那里。
使用wireshark测试,没有消息转发到远程系统。
我正在使用yocto平台和busybox 1.22 syslog实现。
更新
在yocto中,我看到了另一个配置文件/ etc / syslog-startup.conf,在那里我进行了配置。
DESTINATION=remote # log destinations (buffer file remote)
REMOTE=10.10.10.2:514 # where to log (syslog remote)
现在它已经开始转发所有的消息,但是根据 Linux 手册,syslog conf 必须支持
*.=alert @<host:port>
过滤器。如果我要使用上述配置,如何应用这些过滤器?