Linux应用程序中记录器的建议

3

我正在构建一个C++ Linux应用程序,需要记录其活动。有哪些现有的Linux设施可以创建日志?您会推荐什么?

4个回答

10
历史上最常用的是syslog(3)。从C开始:
#include <syslog.h>
openlog("myprogram", LOG_PID, LOG_LOCAL0);
syslog(LOG_INFO, "data %d %s", 3, "example");

来自 Perl:

use Sys::Syslog;
openlog "myprogram", "pid", "local0";
syslog 'info', 'data %d %s', 3, 'example';

从shell命令行:

logger -p local0.info -t myprogram -- data 3 example

syslogd守护进程可以根据设备(这里是LOG_LOCAL0)和优先级(这里是LOG_INFO)的不同,将日志文件放置在不同的位置(文件、tty或其他计算机)。


syslog 可以写入单独的文件,还是所有日志都会写入系统日志? - jackhab
它会进入系统日志。也可以使用LOG_CONS记录到控制台。 - kmkaplan

3

似乎是瑞士军刀式的记录器... - jackhab
是的,它很容易设置和使用,虽然我使用了此记录器(log4net)的 .Net 端口。 - Alex Reitbort

1
除了Alex所说的,你为什么需要一个特定于Linux的记录器呢?

我并不需要Linux特定的记录器。我只是想知道在Linux平台上手动记录到文件以外的替代方法有哪些。 - jackhab
谢谢你的澄清。'log4cxx'就是答案。 - user59634

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接