【问题标题】:Can Logrotate be use in C?Logrotate 可以在 C 语言中使用吗?
【发布时间】:2021-01-26 13:30:22
【问题描述】:

我是 linux 的新手,我打算使用 logrotate,这样在无线电文件系统中生成的日志文件就不会变大并导致任何内存问题。

但是从下面可以看出,这个配置是在 linux 的 logrotate.conf 文件中设置的,然后我很困惑,想知道是否可以在我的 C 文件中添加这个东西作为“编码风格”,以便它可以工作我的收音机正在运行 Linux 系统。

收音机毕竟在 /etc/logrotate.d 路径下没有这个 logrotate 东西。我也无法安装任何 logrotate 或执行命令“man logroate”,它告诉:“logrotate”没有手动输入。

/var/logs/*.log {
    hourly
    missingok
    rotate 24
    compress
    create
}

可以像.C文件中的fclose()或fopen()这样的普通函数调用吗?

如果可以在C文件中使用,那么配置参数的正确方法是什么?

【问题讨论】:

  • Logrotate 是一个单独的程序,它为不轮换自己的日志的程序轮换日志。您必须使用 logrotate 还是想知道如何让您的程序轮换自己的日志?
  • @user253751 是的,我想知道如何让我的程序轮换自己的日志。我发现这个 logrotate 的功能是我想要的,这就是为什么我问如何实现他的 logrotate,但似乎它在我的 C 文件中无济于事
  • 当您认为日志文件太大或太旧时,您可以关闭日志文件,然后打开一个新文件。您也可以使用rename 重命名文件。

标签: c linux logging logrotate


【解决方案1】:

我认为您误解了 logrotate 的工作方式:它仅适用于主机上的服务/应用程序创建的文件。

例如,在您的 linux 机器上,您正在运行邮件服务器 postfix(基于您发布的配置):

  1. Postfix 服务填充日志文件 /var/log/postfix.log
  2. Lo​​grotate 每小时占用 postfix.log 并创建压缩文件 postfix.1
  3. 现有存档文件的增量
  4. Lo​​grotate 保留 24 个压缩文件(= 1 天)

在您的情况下,您必须设置应用程序日志记录以保存日志文件,然后您可以对其应用 logrotate。

Logrotate 手册页可以找到here

【讨论】:

    猜你喜欢
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多