记录C程序

时间:2011-11-25 21:54:12

标签: c linux logging

我需要一些聪明的日志记录库,用于Linux上类似守护进程的C(非C++)程序。它需要是开源的。它应该支持记录到文件,也许是套接字等。

或者至少是一些好的提示或技巧或最佳实践。

2 个答案:

答案 0 :(得分:5)

使用syslog()。这会将您的程序日志记录与日志的处理方式分离。 rsyslog现在在大多数Linux发行版中都使用,并且可以很灵活地处理日志的处理方式。

答案 1 :(得分:1)

以下是您可以做的事情。

我假设您的C应用程序作为deamon运行,因此您无法对日志消息进行frintf。 syslog()肯定是一个用于路由消息的选项。 syslog()是deamons编写消息的位置,管理员解析syslog文件的内容以获得有意义的结论。 syslog也有特定的日志记录格式。但是我希望你建议自己编写日志计划。它通常是企业软件中所需要的,而不是登录到syslog中。这样做

1。在您的主配置文件中定义一个日志记录宏

 #define LOG_ERR log_err 

有一个像这样的定义      log_err(int errno,char * logger,char * text) api应该将详细信息记录到日志文件中。

  1. 任何包含主配置文件的c文件都可以使用宏

    LOG_ERR(错误号,“handle_submission()”,“提交作业失败”)

  2. 您还应该在记录器文件中包含时间戳。