gpt4 book ai didi

Linux 上 C 应用程序在 DEBUG 模式下执行的自定义日志记录

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:53 24 4
gpt4 key购买 nike

我想了解如何在 Linux 上开发应用程序(仅限 C),以便我可以在 Debug模式下执行时为其生成日志文件。Syslog 是一个守护进程,我们的应用程序记录到它的日志消息与其他消息混合在一起。不过,我想要一个自定义日志文件(只是与系统日志不同,但特定于此应用程序,并且每次都可以是相同的文件,或者每次执行都可以是不同的文件)。

我特别要求 DEBUG 模式来缩小问题范围,但理想情况下我想实现 3 种执行模式:启用 LOG 模式(非调试)、禁用 LOG 模式(非 Debug模式)、DEBUG 模式(日志将在默认此模式)。

最佳答案

如果您要找的是这个,则没有库接口(interface)。

您的应用程序需要自己打开日志文件,然后您可以定义一组函数来记录“错误”、“警告”、“信息”、“调试”等。

您还需要一些方法来定期滚动您的日志文件。

如果要使用基于大小的滚动,可以使用fprintf 打印到日志,然后捕获返回值以获得写入的字节数。然后,您可以将该值添加到计数器中,看看是否达到了大小阈值。相反,如果您想要基于日期的滚动,您可以设置下一次滚动的时间,然后检查当前时间是否晚于该时间。

当您达到滚动标准时,您将关闭当前日志文件,重命名该文件(如果需要,连同旧文件),然后打开一个新日志文件。

要保留一定数量的文件,比如说n个日志文件,首先删除logfile.n,然后重命名logfile.n-1logfile.nlogfile.n-2logfile.n-1,等等,直到你找到最近的文件您将 logfile 重命名为 logfile.1

对于基于日期的滚动,如果你想每天滚动,你只需要将最近的日志文件从 logfile 重命名为 logfile.YYYYMMDDlogfile.YYYYMMDD_HH 如果你想按小时滚动,等等。

关于Linux 上 C 应用程序在 DEBUG 模式下执行的自定义日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39663532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com