您的位置:首页 > 运维架构

OPENWRT 打印log消息到logread

2016-07-01 17:33 4834 查看
之前只知道 dmesg 可以用来助用户了解系统的启动信息,现在接触了openwrt,发现了logread。

logread是在调试luci的时候用到的,极其方便,对于不太了解OpenWrt系统构成对人尤甚。

这个需要写进程对人对syslogd提供支持,否则说来知识惘然,我们需要做系统,需要做好对系统,就需要油完善对日志管理,精简无冗余对才是最有用的,这是我们使用其的目的。废话不多说,直接看卡logread的组成吧

在busybox中实现了syslogd 和 logread.

syslogd用来记录log, logread则用来读取log.

logread的代码很简洁,主要实现过程是:连接共享内存->信号量加锁->读取共享内存中的信息并输出->信号量解锁

正如openwrt官网wiki所说Older OpenWrt releases (AA and earlier
ones) were using BusyBox's 
syslogd
 (and 
logread
)
while the newer ones (BB and later) use ubox's 
logd
 and 
logread
.老版本用 syslogd与logread,新版本用logd与logread

logd
 –
a deamon creating 
/dev/log
 socket, forwarding kernel messages & providing ubus 
log
 object
(with 
read
 and 
write
 commands)

logread
 –
a tool for reading messages using 
ubus
, see help messages for its usage

syslogd产生的log一般都在/var/log/messages里面

而logd产生的log 好像是一块内存 /sbin/logd -S 16   16kb,这块还不是很了解

要想输出自己的log,用logread读取到,就要用到logger这个工具

logger -t wsz hello   指定特定的标签名来打印信息,默认是用户名
logger -s hello   直接输出到stderr ,logread读不到

logger -p 1 指定优先级
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: