我有一个使用 log4c 进行日志记录的应用程序。在过去几个月的开发过程中,它一直运行良好。今天我为这个应用程序编写了一个 systemd 服务文件,以便在启动时运行。现在 log4c 不会生成任何日志文件。这是我的 log4crc 文件。我什至尝试指定日志目录的绝对路径,但这也不起作用。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE log4c SYSTEM "">
<log4c>
<config>
<bufsize>0</bufsize>
<debug level="2"/>
<nocleanup>0</nocleanup>
</config>
<!-- root category ========================================= -->
<category name="root" priority="debug" appender="rolling_appender"/>
<!-- default appenders ===================================== -->
<appender name="rolling_appender" type="rollingfile" logdir="." prefix="foo" layout="basic" rollingpolicy="rolling_policy" />
<!-- default layouts ======================================= -->
<layout name="basic" type="basic"/>
</log4c>
下面是我的代码:
#include <log4c.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
fprintf(stderr, "log4c tester\n");
if (log4c_init())
{
fprintf(stderr, "Failed to start log4c\n");
return -1;
}
log4c_category_log(log4c_category_get("root"), 1, "Testing to log4c");
}
这是我的服务文件:
[Unit]
Description=Logging test
[Service]
ExecStart=/opt/test
[Install]
WantedBy=multi-user.target
在调用 init 函数之前,我什至让测试应用程序更改了它的工作目录。有什么想法吗?