linux fprintf如何实现日志轮转

   2024-10-01 4440
核心提示:在Linux中,可以使用logrotate工具实现日志轮转创建一个日志文件:#includestdio.h#include stdarg.h#include time.hvoid write_

在Linux中,可以使用logrotate工具实现日志轮转

创建一个日志文件:
#include<stdio.h>#include <stdarg.h>#include <time.h>void write_log(const char *format, ...) {    FILE *logfile;    va_list args;    time_t now;    char timestr[20];    logfile = fopen("myapp.log", "a");    if (logfile == NULL) {        return;    }    time(&now);    strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S", localtime(&now));    fprintf(logfile, "[%s] ", timestr);    va_start(args, format);    vfprintf(logfile, format, args);    va_end(args);    fclose(logfile);}int main() {    write_log("This is a log message.\n");    return 0;}
编译并运行程序:
gcc -o myapp myapp.c./myapp
创建logrotate配置文件:

/etc/logrotate.d/目录下创建一个名为myapp的配置文件。使用文本编辑器打开该文件,例如:

sudo nano /etc/logrotate.d/myapp
编辑logrotate配置文件:

将以下内容添加到配置文件中:

/path/to/your/myapp.log {    daily    rotate 7    compress    missingok    notifempty    create 640 root adm    postrotate        invoke-rc.d rsyslog rotate > /dev/null    endscript}

请确保将/path/to/your/myapp.log替换为实际的日志文件路径。

测试日志轮转:

要测试日志轮转是否正常工作,可以使用以下命令手动运行logrotate

sudo logrotate -f /etc/logrotate.d/myapp

这将立即执行日志轮转。检查日志文件是否已按照配置文件中的设置进行了轮转。

现在,每天都会自动进行日志轮转。logrotate会将旧的日志文件压缩并保留7天。当然,你可以根据需要调整这些设置。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号