我目前正在做的工作

我目前正在做的工作

我目前正在做的工作

我编写了一个 Python 应用程序,它通过以下方式写入消息rsyslog。我已经配置了rsyslog写入自定义日志文件,/var/log/my_custom_log.log其中我的条目运行正常。

我的默认syslog.conf是没有修改的,我/etc/rsyslog.d/00-myrules.conf的如下:

:msg, contains, "Transmission" /var/log/transmission.log
& ~

我也不明白最后的 & ~ 有什么作用,但没有它似乎就不起作用。

我需要什么才能工作

我只想能够将日志写入/home/me/logs/my_tests.log。当我测试我的应用程序时,我需要确保某些内容被写入日志一定次数。我之前所做的是将我的消息写入我的主目录中的纯文本文件,检查此文件是否正确,然后在每次测试时删除它。我现在需要做同样的事情,但使用rsyslog。我正在以我的用户身份运行我的测试。

我想要正常日志写入/var/log/my_app_log.log,这样就可以了。

我尝试过的

  1. 此用户似乎遇到了和我同样的问题,但我既不理解接受的答案(我不明白 SElinux 与它有什么关系,它可能如何影响任何事情,或者他们正在谈论的这些标签是什么或在哪里),也不理解另一个答案(用户提到出于安全原因做一些不推荐的事情,我应该避免,但即使我想运行这个命令,我也不明白在哪里运行它)。
  2. 此用户的问题原来是谁拥有该目录的问题,但如果我运行ps aux | grep "rsyslog",它会返回/usr/sbin/rsyslogd -n正在运行的,它(如果我错了请纠正我)应该能够将我的主目录的子目录写入,无论谁拥有它。

答案1

编辑:经过进一步讨论,我们认为将日志放在 之外是愚蠢的/var/log。毕竟,这就是它的用途。

这篇文章的帮助,我发现运行ls -Z会显示 SELinux 上下文。正如发帖人所建议的那样,我将上下文复制到了/var/logs我家中的日志目录中,并获得了所需的结果。

但是,我意识到这并不理想,正如第一个链接问题中接受的答案所述,因为它不是万无一失的。不幸的是,我对 SELinux 的了解还不够,无法正确阐述这一点,而且使用的方法适用于我的小环境。

相关内容