怎样给嵌入式系统加syslog

发布于 2022-07-23 17:30:52 字数 118 浏览 10 评论 5

现在发现在FPGA的网络有问题.用UDP所有服务都没有问题,但是TCP的所有服务都有问题,所以想在系统里加入SYSLOG,希望能找到错误信息,但上网查过都没有这方面的文章,请大家帮帮忙吧,怎样能让嵌人式LINUX里有log文件产生!谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

葬心 2022-07-25 08:04:54

我是用2.6内核,原来要加上KLOGD才能跑起来的

风吹短裙飘 2022-07-25 06:05:00

我用的2.6内核、busybox的syslogd,在/etc/init.d/rcS里面先klogd,再syslogd -O /var/log/message ,结果syslogd并没有启起来,非要等到进入shell后,手工 syslogd -O /var/log/message 才能起来。

长途伴 2022-07-25 04:48:11

syslog 很简单。
如果是 2.4.x 的话,
只需要将 syslogd 这个程序及其依赖的 .so 拷贝到目标机上去,
哦,别忘了一并拷贝 /etc/syslog.conf
然后在启动脚本启动一下就行了。

2.6.x 的话,需要连 klogd 一并拷贝过去。
2.6.x 的 klogd + syslogd 相当于 2.4.x 的 syslogd。

嗼ふ静 2022-07-25 02:31:11

Linux程式设计-syslog

在Linux下有个syslogd的Daemon程式,syslog是个系统管理员必看的档案。因此,如果您的程式有除错或安全讯息要显示,写到syslog是个很好的选择。
syslog有三个函数,使用上,一般您只需要用syslog(...)这个函数即可,一般使用状况下,openlog/closelog是可有可无的。
syslog()中的priority是facility及level的组合,其後参数的用法与printf无异。

头文件:
#include <syslog.h>

void openlog( char *ident, int option, int facility)
void syslog( int priority, char *format, ...)
void closelog( void )

openlog( char *ident, int option, int facility)
ident
此字符串内容一般就是这个程序的名称,它会输出到日志文件中。

option
用於openlog()的option参数可以是以下几个的组合:
LOG_CONS : 如果送到system logger时发生问题,直接写入系统console。
LOG_NDELAY : 立即开启连接(通常,连接是在第一次写入讯息时才打开的)。
LOG_PERROR : 将讯息也同时送到stderr
LOG_PID : 将该程序的PID也写入到日志文件

facility
facility参数用来指定何种程式在记录讯息,这可让设定档来设定何种讯息如何处理。
LOG_AUTH : 安全/授权讯息
LOG_AUTHPRIV : 安全/授权讯息
LOG_CRON : 时间守护神专用(cron及at)
LOG_DAEMON : 其它系统守护神(如telnet,ftp等等)
LOG_KERN : 核心讯息
LOG_LOCAL0到LOG_LOCAL7 : 保留
LOG_LPR : line printer次系统
LOG_MAIL : mail次系统
LOG_NEWS : USENET news次系统
LOG_SYSLOG : syslogd内部所产生的讯息
LOG_USER(default) : 一般使用者等级讯息
LOG_UUCP : UUCP次系统

syslog( int priority, char *format, ...)
priority
决定讯息的重要性. 以下的等级重要性逐次递减:
LOG_EMERG : 系统无法使用
LOG_ALERT : 必须要立即采取反应行动
LOG_CRIT : 重要状况发生
LOG_ERR : 错误状况发生
LOG_WARNING : 警告状况发生
LOG_NOTICE : 一般状况,但也是重要状况
LOG_INFO : 资讯讯息
LOG_DEBUG : 除错讯息

format
这之后的参数用法和printf()一样,见下面例子。

例:
.............................
        openlog(appname , LOG_NDELAY, LOG_DAEMON);       
        syslog(LOG_INFO, "connection from: %sn", inet_ntoa(sa.sin_addr));
        closelog();
.............................
日志文件中会记录:
   utelnetd: connection from: 192.168.0.115

花落人断肠 2022-07-24 04:45:24

man syslog

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文