我想将所有内容记录到我的应用程序中的系统日志中。我将主要在两个级别进行日志记录。信息和调试。我不希望最终用户能够看到或访问调试消息。因此,这些消息将被捕获到syslog.conf
一个特殊的文件夹中。
我的问题是我可以将其他消息记录到控制台和消息文件中吗?我的想法如下,但这并不像我预期的那样工作。
# /etc/syslog.conf Configuration file for busybox's syslogd utility
*.debug /var/log/debug
*.info /var/log/info
*.info /dev/consol
答案1
按照man 3 syslog
确保调用时正确设置“优先级”值syslog()
。
手册页中的一些有用的片段:
该参数是通过将一个值和一个值
priority
进行“或”运算而形成的(如下所述)。如果没有值与 进行或运算 ,则使用 设置的默认值,或者,如果没有先前的调用,则使用默认值。facility
level
facility
priority
openlog()
openlog()
LOG_USER
和
的值
facility
:该facility
参数用于指定记录消息的程序类型。这让配置文件指定来自不同设施的消息将以不同的方式处理。
LOG_AUTH
安全/授权消息LOG_AUTHPRIV
安全/授权消息(私有)LOG_CRON
时钟守护进程(cron 和 at)=LOG_DAEMON
没有单独设施值的系统守护进程LOG_FTP
FTP守护进程LOG_KERN
内核消息(这些消息不能从用户进程生成)LOG_LOCAL0
通过LOG_LOCAL7
保留供本地使用LOG_LPR
行式打印机子系统LOG_MAIL
邮件子系统LOG_NEWS
USENET新闻子系统LOG_SYSLOG
由 syslogd(8) 内部生成的消息LOG_USER
(默认)通用用户级消息LOG_UUCP
UUCP子系统的值
level
:这决定了消息的重要性。这些级别按重要性递减顺序排列:
LOG_EMERG
系统无法使用LOG_ALERT
必须立即采取行动LOG_CRIT
临界条件LOG_ERR
错误条件LOG_WARNING
警告条件LOG_NOTICE
正常但重要的状况LOG_INFO
信息性消息LOG_DEBUG
调试级消息该函数
setlogmask(3)
可用于将日志记录限制为仅指定级别。