我想了解如何在linux上开发一个应用程序(只有C),这样我就可以在调试模式执行时获得为它生成的日志文件。 Syslog是一个守护进程,我们的应用程序记录到它的日志消息与其他消息混合在一起。我想要一个自定义日志文件(只是与系统日志不同的日志,但特定于此应用程序,每次都可以是同一个文件,每次执行都可以是不同的文件)。
我特意要求DEBUG模式缩小问题范围,但理想情况下我想实现3种执行模式:启用LOG模式(不调试),禁用LOG模式(不调试模式),DEBUG模式(日志将在默认情况下这种模式。)
答案 0 :(得分:0)
如果你正在寻找它,那么没有库接口。
您的应用需要打开日志文件本身,然后您可以定义一组功能,以记录为“错误”,“警告”,“信息”,“调试”等。
您还需要一些定期滚动日志文件的方法。
如果要使用基于大小的滚动,可以使用fprintf
打印到日志,然后捕获返回值以获取写入的字节数。然后,您可以将该值添加到计数器,并查看是否已达到大小阈值。如果您想要基于日期的滚动,您可以设置下一次滚动的时间,然后检查当前时间是否在该时间之后。
当达到滚动条件时,然后关闭当前日志文件,重命名该文件(如果需要,还可以重命名旧文件),然后打开新的日志文件。
要保留一定数量的文件,我们说n
个日志文件,先删除logfile.n
,然后将logfile.n-1
重命名为logfile.n
,将logfile.n-2
重命名为{ {1}}等等,直到您转到从logfile.n-1
重命名为logfile
的最新文件。
对于基于日期的滚动,您只需要将最新的日志文件从logfile.1
重命名为logfile
,如果您想要每日滚动,logfile.YYYYMMDD
如果您想要每小时滚动,等等