出于项目需求,需要读取某个进程的最新日志,而这个进程刚好是supervisor管控。

很自然地我就想到了,根据日志的编辑时间排序,获取最新的日志文件。

然而,发现了奇怪的一幕:

发现什么没有?

webcgj-0.std这个最初的日志编辑时间居然比webcgj-0.std.1的编辑时间完。不应该是webcgj-0.std写满了,再去写webcgj-0.std.1, 然后webcgj-0.std.2等等吗?

当然不是!

××××××××××××××××××××××××××××××××××××××××××××      来自官方文档的解释      ××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

http://supervisord.org/logging.html#activity-log-rotation

以这个配置为例:

# supervisor配置文件
logfile =xxx.log
logfile_maxbytes = 50MB
logfile_backups=2

当进程启动时,创建xxx.log日志:

1、当xxx.log超过50M(logfile_maxbytes = 50MB)后, xxx.log更名为xxx.log.1(logfile_backups=2), 创建新文件xxx.log;

2、当xxx.log超过50M(logfile_maxbytes = 50MB)后,xxx.log.1更名为xxx.log.2(logfile_backups=2), xxx.log更名为xxx.log.1(logfile_backups=2), 创建新文件xxx.log;

3、当xxx.log超过50M(logfile_maxbytes = 50MB)后,xxx.log.2被删除(logfile_backups=2,且他是最老的日志), xxx.log.1更名为xxx.log.2(logfile_backups=2), xxx.log更名为xxx.log.1(logfile_backups=2), 创建新文件xxx.log;

4、无限循环3

我说清楚没?

得出两个结论:

(1)配置文件中日志名对应的日志是对应进程最新的日志数据;

(2)多看官方文档(我看过一个翻译的帖子,阐述错误)。

supervisor不一样的日志轮转的更多相关文章

  1. logrotate日志轮转配置文档

    转自:http://blog.163.com/bull_linux/blog/static/2138811422013101334544349/ 使用:    logrotate CONF_FILE+ ...

  2. 基于Spring Boot的Logback日志轮转配置

    在生产环境下,日志是最好的问题调试和跟踪方法,因此日志的地位是十分重要的.我们平时经常使用的log4j,slf4j,logback等等,他们的配置上大同小异.这里就结合Spring Boot配置一下L ...

  3. docker中实现服务日志轮转

    问题背景 通常我们一个完整的应用镜像有两部分组成,一个是运行时环境,一个是应用程序.我们以php应用为例,一个完整的php应用需要包含openresty + php两个服务来配置运行时环境,然后再加上 ...

  4. logrotate日志轮转

    1)基本介绍 适合应用服务日志,系统日志按天切割 如果没有日志轮转,日志文件会越来越大 将丢弃系统中最旧的日志文件,以节省空间 logrotate本身不是系统守护进程,它是通过计划任务crond每天执 ...

  5. python日志轮转RotatingFileHandler在django中的一个bug

    简介 大量过时的日志会占用硬盘空间,甚至长时间运行不注意会占满硬盘导致宕机,那么就可以使用内建logging模块根据文件大小(logging.handlers.RotatingFileHandler) ...

  6. 09、日志轮转+rsync同步

    logrotate   -  rotates,  compresses,  and    mails system logs 日志轮转 rotate 日志切割 轮转   切割   备份   归档 常见 ...

  7. supervisor 日志轮转

    Supervisord 会基于 logfile_maxbytes 和 logfile_backups 轮转日志.当活跃日志文件大小达到 logfile_maxbytes,这个文件会被重命名为备份文件, ...

  8. apache日志轮转

    apache默认的日志配置为:     ErrorLog "logs/error_log"     CustomLog "logs/access_log" co ...

  9. python logging 日志轮转文件不删除问题

    前言 最近在维护项目的python项目代码,项目使用了 python 的日志模块 logging, 设定了保存的日志数目, 不过没有生效,还要通过contab定时清理数据. 分析 项目使用了 logg ...

  10. Apache自带的rotatelogs实现日志轮转

    用Apache自带的rotatelogs程序处理apache生成的日志自动截断重新生成,rotatelogs是一个配合Apache管道日志功能使用的简单程序.设置方法如下: 编辑Apache的主配置文 ...

随机推荐

  1. 暑假学习二 8.24 Hadoop的环境配置

    今日学习内容: 主要为Hadoop的环境配置,相关配置所需文档可以留言(?)会给发送 1.hadoop介绍: 狭义: 核心组件,Hadoop hdfs  分布存储 yarn   资源管理和任务调度框架 ...

  2. Unity生成AB包和加载AB包

    unity生成AB包 生产AB包,编辑器脚本放在Editor文件夹下(切记) 如果你是PC包 BuildTarget.WebGL  后面要改成PC (BuildTarget.StandaloneWin ...

  3. 使用Latex错误集

    1.写公式的函数--align(最怕空行) (1)align用法示例 \begin{align} & \left\{ \begin{array}{ll} \sup\limits_{\tilde ...

  4. ZSTUOJ刷题11:Problem D.--零起点学算法106——首字母变大写

    Problem D: 零起点学算法106--首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 18252  Solved: 5211 Descr ...

  5. JS斐波那契数列O(n)

    function fibonacci(n) { return fib(n)[n] } var fib=(function(n){ var meo=[0,1] return function(n){ f ...

  6. TypeError: Cannot read property ‘$options‘ of undefined vue

    vue弹框页面 <el-form :model="ruleForm" ref="ruleForm" label-width="100px&quo ...

  7. 项目实训 DAY 9

    加入页面之间定向的按钮,并改了一个typo

  8. idea 部署项目到 docker 运行

    1.在远程服务器上开启 docker 远程连接 $vim /usr/lib/systemd/system/docker.service # ExecStart=/usr/bin/dockerd -H ...

  9. vue组件 子组件没有事件怎么 向父组件传递数据

    通过ref去接收值!!! 需求图片 代码实现 //----------父组件 <div class="fingerprint-bottom"> <el-tabs ...

  10. idea好用的功能

    1. 自定义快捷输入 ----https://blog.csdn.net/qq_35091353/article/details/11828025 可以将一些常用的语法,比如各种lamda表达式.tr ...