linux 上 C 应用程序在 DEBUG 模式下执行的自定义日志记录
Custom logging for execution in DEBUG mode for C application on linux
我想了解如何在 linux 上开发应用程序(仅限 C),以便我可以在调试模式下执行时为其生成日志文件。
Syslog 是一个守护进程,我们的应用程序记录到它的日志消息与其他消息混合在一起。不过,我想要一个自定义日志文件(只是与系统日志不同,但特定于此应用程序,并且每次都可以是相同的文件,或者每次执行都可以是不同的文件)。
我特别要求 DEBUG 模式来缩小问题范围,但理想情况下我想实现 3 种模式 execution:LOG 模式启用(非调试)、LOG 模式禁用(非调试模式)、DEBUG 模式(日志默认情况下将以此模式创建)。
如果您要找的是这个,则没有库接口。
您的应用程序需要自己打开日志文件,然后您可以定义一组函数来记录为 "error"、"warn"、"info"、"debug"等
您还需要一些方法来定期滚动您的日志文件。
如果要使用基于大小的滚动,可以使用fprintf
打印到日志,然后捕获return值以获得写入的字节数。然后,您可以将该值添加到计数器中,看看是否达到了大小阈值。相反,如果您想要基于日期的滚动,您可以设置下一次滚动的时间,然后检查当前时间是否在该时间之后。
当您达到滚动标准时,然后关闭当前日志文件,重命名该文件(如果需要,连同旧文件),然后打开一个新日志文件。
要保留一定数量的文件,比如说n
个日志文件,先删除logfile.n
,然后将logfile.n-1
重命名为logfile.n
,logfile.n-2
到 logfile.n-1
,等等,直到你到达你从 logfile
重命名为 logfile.1
.
的最新文件
对于基于日期的滚动,你只需要将最近的日志文件从 logfile
重命名为 logfile.YYYYMMDD
如果你想每天滚动, logfile.YYYYMMDD_HH
如果你想每小时滚动,并且等等。
我想了解如何在 linux 上开发应用程序(仅限 C),以便我可以在调试模式下执行时为其生成日志文件。 Syslog 是一个守护进程,我们的应用程序记录到它的日志消息与其他消息混合在一起。不过,我想要一个自定义日志文件(只是与系统日志不同,但特定于此应用程序,并且每次都可以是相同的文件,或者每次执行都可以是不同的文件)。
我特别要求 DEBUG 模式来缩小问题范围,但理想情况下我想实现 3 种模式 execution:LOG 模式启用(非调试)、LOG 模式禁用(非调试模式)、DEBUG 模式(日志默认情况下将以此模式创建)。
如果您要找的是这个,则没有库接口。
您的应用程序需要自己打开日志文件,然后您可以定义一组函数来记录为 "error"、"warn"、"info"、"debug"等
您还需要一些方法来定期滚动您的日志文件。
如果要使用基于大小的滚动,可以使用fprintf
打印到日志,然后捕获return值以获得写入的字节数。然后,您可以将该值添加到计数器中,看看是否达到了大小阈值。相反,如果您想要基于日期的滚动,您可以设置下一次滚动的时间,然后检查当前时间是否在该时间之后。
当您达到滚动标准时,然后关闭当前日志文件,重命名该文件(如果需要,连同旧文件),然后打开一个新日志文件。
要保留一定数量的文件,比如说n
个日志文件,先删除logfile.n
,然后将logfile.n-1
重命名为logfile.n
,logfile.n-2
到 logfile.n-1
,等等,直到你到达你从 logfile
重命名为 logfile.1
.
对于基于日期的滚动,你只需要将最近的日志文件从 logfile
重命名为 logfile.YYYYMMDD
如果你想每天滚动, logfile.YYYYMMDD_HH
如果你想每小时滚动,并且等等。