- 論壇徽章:
- 0
|
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
st1\:*{behavior:url(#ieooui) }
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
Author:
misty(qibing83@yahoo.com.cn)
在嵌入式系統(tǒng)中,因?yàn)榇鎯?chǔ)空間等資源有限,不可能像在PC機(jī)上一樣記錄所有的系統(tǒng)運(yùn)行日志。在嵌入式上syslog日志的目標(biāo)只是記錄相關(guān)程序的運(yùn)行錯(cuò)誤信息或由用戶設(shè)置日志顯示級(jí)別而查看相關(guān)的日志,以及調(diào)試程序時(shí)查看日志信息。在具體選擇時(shí),可以用一些syslogd項(xiàng)目提供的源代碼,另外就是移植busybox中的syslogd程序。下面主要介紹從busybox中移植出syslogd.c的方法和步驟,然后再介紹syslog-ng包的編譯和使用。
1.1
從Busybox移植syslogd
Busybox的根目錄下有一個(gè)sysklogd目錄,里面就是提供給busybox命令syslogd的程序代碼,syslogd.c文件就是我們要分解出來(lái)的主文件。
1.1.1
編譯syslogd步驟
其實(shí)方法很簡(jiǎn)單,只需把syslogd.c文件單獨(dú)拷貝出來(lái),單獨(dú)編譯:
#gcc –o syslogd syslogd.c
這過(guò)程中會(huì)有很多錯(cuò)誤,根據(jù)錯(cuò)誤原因在目錄sysklogd和include下的查看相關(guān)的文件,把所需要的宏、結(jié)構(gòu)定義、相關(guān)的函數(shù)原型等都拷貝到syslogd.c文件中,這樣反復(fù)編譯,直到編譯成功,那么syslogd可執(zhí)行程序就是我們需要的。
要注意的是,需要根據(jù)busybox-1.2.0/sysklogd/config.in文件中的解釋,打開(kāi)syslogd.c文件中的相關(guān)的宏定義,在我的程序中我打開(kāi)了所有的宏定義。
附件中是我分離好的qsyslogd.c文件,已經(jīng)編譯通過(guò)并實(shí)驗(yàn)可以使用,
![]()
文件:qsyslogd.rar
大小:8KB
下載:
下載
1.1.2
運(yùn)行qsyslogd及驗(yàn)證
Qsyslogd有兩個(gè)主要的選項(xiàng):
l
qsyslogd –R 192.168.21.49 表示把syslog信息通過(guò)網(wǎng)絡(luò)傳到192.168.21.49的機(jī)器上
l
qsyslogd –L 表示在終端界面上顯示syslog信息
建立文件mylog.c,并編譯運(yùn)行,
#include
#include
int main()
{
syslog(LOG_USER|LOG_INFO,
"hello world, test logger ^_^\n");
return 0;
}
#gcc –o mylog mylog.c
#./mylog
查看文件/var/log/messages文件就可以看到我們輸出的syslog日志信息了。
1.2
syslog-ng的編譯和使用
syslog-ng是BalaBit公司開(kāi)發(fā)和維護(hù)的,遵循GNU。意指下一代日志系統(tǒng),它建立了更好的消息過(guò)濾粒度?梢韵螺dsyslog-ng-1.6.9.tar.gz版本。編譯只需configure make即可,編譯后再src目錄下生成bin文件syslog-ng,下一步運(yùn)行syslog-ng即可。Syslog-ng運(yùn)行時(shí)需要syslog-ng.conf配置文件。在運(yùn)行時(shí)指定特定的配置文件就可以了,比如:
#syslog-ng
–f /home/qibing/syslog-ng.conf
在目錄sample下有各個(gè)系統(tǒng)配置文件的原型,可以在這些配置文件原型上做相應(yīng)的修改,一般只需修改dmsg字段。要查看日志信息到dmsg字段指定的文件查看即可。
建立文件test.c并編譯運(yùn)行,
#include
#include
int main()
{
syslog(LOG_USER|LOG_INFO,
"hello world, test logger ^_^\n");
return 0;
}
則到dmsg字段指定的文件中即可查看輸出的日志信息。
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u2/70351/showart_733088.html |
|