【问题标题】:Logging for C programC 程序的日志记录
【发布时间】:2012-01-06 15:45:00
【问题描述】:

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

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

【问题讨论】:

标签: c linux logging


【解决方案1】:

使用 syslog() 。这将您的程序内日志记录与日志的处理方式分离。 rsyslog 在当今大多数 Linux 发行版上都使用,并且在处理日志的方式上提供了极大的灵活性。

【讨论】:

    【解决方案2】:

    以下是您可以做的事情。

    我假设您的 C 应用程序作为守护进程运行,因此您不能忽略日志消息。 syslog() 当然是路由消息的一个选项。 syslog() 是守护进程写入消息的位置,管理员解析 syslog 文件的内容以得出有意义的结论。 syslog 也有特定的日志记录格式。但是,我希望建议您编写自己的日志记录方案。这通常是企业软件所需要的,而不是登录到 syslog。这样做

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

     #define LOG_ERR log_err 
    

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

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

      LOG_ERR(errno,"handle_submission()","提交作业失败")

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 2022-01-17
      • 1970-01-01
      • 2014-10-01
      • 2020-11-11
      • 2023-04-08
      • 2011-10-26
      相关资源
      最近更新 更多