所以我在我的个人 Windows 笔记本电脑上使用 Debian。 我正在做一项作业,需要在语句运行时使用 syslog c 库从我的程序中打印出来。
这是我在程序中使用的相关代码:
#include <syslog.h>
(然后在 main 中)
openlog("slog",LOG_PID|LOG_CONS,LOG_USER);
syslog(LOG_INFO,"wuddup to u");
closelog();
代码运行没有问题,但我找不到任何包含我打印的日志的文件。
在 Debian 上,系统日志应该保存在 /var/log/syslog 或 /var/log/messages 中。 /var/log 存在,但我没有其中任何一个文件夹。
它似乎不在隐藏文件中,所以我认为这不是权限问题。 应该位于 /etc 中的 syslog.conf 也不存在。
然而, rsyslog.conf 中有对 syslog 的引用,它确实存在于 /etc
rsyslog.conf 中标题为 RULES 的部分如下所示:
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
我还没有弄清楚破折号或其他部分的真正含义。 这是我在终端中尝试过的一些可能相关命令的输出:
dmesg
[ 0.007738] Microsoft 4.4.0-18362.1049-Microsoft 4.4.35
uname -a
Linux DESKTOP-KH1LDFG 4.4.0-18362-Microsoft #1049-Microsoft Thu Aug 14 12:01:00 PST 2020 x86_64 GNU/Linux
查找 /syslog
find: ‘/syslog’: No such file or directory
sudo apt-get install syslog
[sudo] password for sarah:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package syslog
mkdir syslog(来自 /var/log)
mkdir: cannot create directory ‘syslog’: Permission denied
sudo service rsyslog start
[....] Starting enhanced syslogd: rsyslogdrsyslogd: set SO_TIMESTAMP failed on '/dev/log': Invalid argument [v8.1901.0]
rsyslogd: imklog: cannot open kernel log (/proc/kmsg): No such file or directory.
rsyslogd: activation of module imklog failed [v8.1901.0 try https://www.rsyslog.com/e/2145 ]
. ok
答案 0 :(得分:0)
我跑了
malloc
关注
'sudo apt-get install --reinstall rsyslog'
然后我重新编译了我的程序并再次运行它。然后我检查了 /var/log 中的文件,syslog 在那里!与我的日志消息!谢谢!