我正在使用systemd日志来创build一个自定义的日志处理程序。 我正在尝试使用sd_journal API,但我有几个问题:
是否有可能在没有轮询的情况下收听运行时期刊 (SD_JOURNAL_RUNTIME_ONLY)? SD_JOURNAL_FOREACH_DATA和sd_journal_get_data并没有多说这个。
在你看来, 这是一个很好的devise吗?
有没有一种方法来了解运行时日志在何处被转发 ? 我做了“systemctl status systemd-journald.service”,服务状态正在运行。 但是,当我尝试使用sd_journal_open阅读日记时,它不显示任何条目。 我可以通过journalctl看到条目。 我想在不读日志文件的情况下(通过sniffing / run / log / journal这是一个unix域套接字)来避免磁盘IO。
这里是我使用的示例代码:
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <systemd/sd-journal.h> #include <systemd/sd-daemon.h> int main(int argc,char *argv[]) { int ret_val = 0; int count = 0; sd_journal *jd; sd_journal_print(LOG_INFO,"Hello World,this is PID %lu!",(unsigned long) getpid()); do { ret_val = sd_journal_open (&jd,SD_JOURNAL_SYstem | SD_JOURNAL_RUNTIME_ONLY | SD_JOURNAL_LOCAL_ONLY); if (ret_val != 0) { fprintf(stderr,"Failed to open journal: %sn",strerror(-ret_val)); break; } printf ("Current Journal was loaded successfully!n"); const void *d; size_t l; SD_JOURNAL_FOREACH_DATA (jd,d,l) { printf("%.*sn",(int)l,(const char*) d); count++; } sd_journal_close(jd); printf ("# of Journal entries read: %dn",count); } while (0); return 0; }
哪种方法更好地阅读C#中的Windows事件日志? WMI或EventLog
写入Windows应用程序事件日志,无需注册事件源
如何从Java写入Windows事件日志?
在Windows中的文本或日志文件之后。 记事本++也许?
在Nginx中匿名化IP日志logging?
Elastic Beanstalk上的Docker部署不收集Nginx日志
在大文件上格式化多个string
AU3Recorder未运行
我花了一段时间才弄清楚,但问题相当简单。 问题在于使用
SD_JOURNAL_RUNTIME_ONLY
而journald 存储被指定为持久性的 。
对我而言,持久性日志不会进入运行时日志缓冲区是非直观的。 因此,模拟journalctl -f功能的唯一方法是打开当地的期刊并寻找尾巴。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。