首页 > 解决方案 > 系统日志目录不存在

问题描述

所以我在我的个人 Windows 笔记本电脑上使用 Debian。我正在做一项任务,需要在语句运行时使用 syslog c 库从我的程序中打印。

这是我在程序中使用的相关代码:

#include <syslog.h>

(然后主要)

openlog("slog",LOG_PID|LOG_CONS,LOG_USER);
syslog(LOG_INFO,"wuddup to u");
closelog();

代码运行没有问题,但我找不到任何包含我打印的日志的文件。

在 Debian 上,syslog 应该保存在 /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

unname -a

Linux DESKTOP-KH1LDFG 4.4.0-18362-Microsoft #1049-Microsoft Thu Aug 14 12:01:00 PST 2020 x86_64 GNU/Linux

查找/系统日志

find: ‘/syslog’: No such file or directory

sudo apt-get 安装系统日志

[sudo] password for sarah:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package syslog

mkdir 系统日志(来自 /var/log)

mkdir: cannot create directory ‘syslog’: Permission denied

sudo 服务 rsyslog 启动

[....] 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

标签: clinuxdebianwindows-subsystem-for-linuxsyslog

解决方案


我跑了

'sudo apt-get install --reinstall rsyslog'

其次是

'sudo apt-get install wsl' 

然后我重新编译了我的程序并再次运行它。然后我检查了 /var/log 中的文件,系统日志在那里!与我的日志消息!谢谢!


推荐阅读