Service 如何为systemd日志创建日志条目?
我有一个Service 如何为systemd日志创建日志条目?,service,systemd,Service,Systemd,我有一个服务,我想让它在某些情况下为日志守护进程创建日志。到目前为止,我还没有找到任何关于如何这样做的说明 我是否误解了《代码》杂志的预期用途?或者我确实缺少了什么东西?如果您有服务,您可以将日志写入标准错误。在C++中,它甚至可以作为一个流名为“代码> STD::CLOG ”,它具有比“代码> STD::CURR :更多的“log”语义。它是一种日志机制,可与systemd、daemontools、daemontools encore、runit、s6、perp、nosh、freedt和其他工
服务
,我想让它在某些情况下为日志
守护进程创建日志。到目前为止,我还没有找到任何关于如何这样做的说明
我是否误解了《代码》杂志的预期用途?或者我确实缺少了什么东西?如果您有服务,您可以将日志写入标准错误。在C++中,它甚至可以作为一个流名为“代码> STD::CLOG ”,它具有比“代码> STD::CURR :更多的“log”语义。它是一种日志机制,可与systemd、daemontools、daemontools encore、runit、s6、perp、nosh、freedt和其他工具配合使用 有一个用于写入systemd日志的API。但是,请确保您有充分的理由将软件和用户锁定到该API中。写入标准错误是一种机制,几乎在任何地方都有效。它很容易理解,管理员也很容易控制、调整和理解。这应该是第一选择 进一步阅读
- Jonathan de Boyne Pollard(2015)。daemontools家族。经常给出答案
- Jonathan de Boyne Pollard(2001年)。"". 设计Unix dæmon程序时要避免的错误。经常给出答案
- 劳伦特·贝科特(2011)。s6日志程序。中六
- 。Freedesktop.org
#include <systemd/sd-journal.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
sd_journal_send("MESSAGE=Hello World!",
"MESSAGE_ID=52fb62f99e2c49d89cfbf9d6de5e3555",
"PRIORITY=5",
"HOME=%s", getenv("HOME"),
"TERM=%s", getenv("TERM"),
"PAGE_SIZE=%li", sysconf(_SC_PAGESIZE),
"N_CPUS=%li", sysconf(_SC_NPROCESSORS_ONLN),
NULL);
return 0;
}
#包括
#包括
#包括
int main(int argc,char*argv[]){
sd_journal_send(“MESSAGE=Hello World!”,
“消息_ID=52fb62f99e2c49d89cfbf9d6de5e3555”,
“优先级=5”,
“HOME=%s”,getenv(“HOME”),
“期限=%s”,getenv(“期限”),
“页面大小=%li”,sysconf(\u SC\u页面大小),
“N_CPU=%li”,sysconf(仅限处理器),
无效);
返回0;
}
注意:使用sd\u journal\u send
可以在消息
之外向日志中添加其他字段,还可以对优先级进行更精细的控制