当前位置:首页>Linux>Linux logrotate 完整解析(原理+配置+实战+排错,新手也能懂)

Linux logrotate 完整解析(原理+配置+实战+排错,新手也能懂)

  • 2026-07-02 16:47:15
Linux logrotate 完整解析(原理+配置+实战+排错,新手也能懂)

在Linux系统运维中,日志文件是排查问题、追溯操作的核心依据,但随着系统持续运行,日志会不断累积,轻则占用大量磁盘空间,重则导致磁盘满溢,影响服务正常运行。logrotate作为Linux系统内置的日志管理工具,无需手动干预,就能自动完成日志的切割、归档、压缩、清理等操作,是运维人员必备的基础工具之一。本文将从原理、配置、实战到排错,全方位拆解logrotate,让新手也能快速上手并灵活运用。

一、logrotate 核心工作逻辑(通俗理解)

logrotate的核心作用,就是“给不断变大的日志文件‘瘦身’”,其运行逻辑可简单拆解为5个步骤,无需复杂技术背景也能看懂:

  1. 定时触发:系统通过crond定时任务(默认路径/etc/cron.daily/logrotate),每天凌晨自动执行logrotate程序,无需手动启动。

  2. 读取配置:logrotate会优先读取全局配置文件/etc/logrotate.conf,再加载/etc/logrotate.d/目录下的所有应用独立配置(比如nginx、mysql的专属日志配置),独立配置会覆盖全局配置,更具针对性。

  3. 判断触发条件:根据配置中设定的“时间”或“日志大小”,判断是否需要对日志进行轮转(切割),其中“大小”条件的优先级高于“时间”条件。

  4. 执行轮转操作:核心流程为“原日志→归档日志→新建空日志”,例如access.log会先重命名为access.log.1(或带日期的格式),再新建一个空的access.log供程序继续写入,旧日志会按规则保留、压缩,超出保留数量的旧日志自动删除。

  5. 记录状态:通过/var/lib/logrotate/status文件,记录每一个日志文件的上次轮转时间,避免一天内重复轮转,确保轮转逻辑有序执行。

关键提醒:logrotate本身不具备定时功能,完全依赖crond定时任务驱动,若crond服务未启动,logrotate将无法自动执行。

二、logrotate 核心文件结构(必记)

logrotate的配置体系分为“全局配置+独立配置”,再加上一个状态记录文件,三者协同工作,缺一不可,具体如下:

1. 全局配置文件:/etc/logrotate.conf

这是logrotate的默认全局规则,所有应用的日志轮转都会继承这里的配置,除非在独立配置中明确覆盖。常见默认配置如下(附带通俗解读):

# 全局默认轮转周期(每周轮转一次)
weekly
# 保留4份旧日志,超出的自动删除
rotate 4
# 轮转后自动新建一个空日志,供程序继续写入
create
# 旧日志后缀用日期格式(如xxx-20260519),替代默认的数字后缀(.1、.2)
dateext
# 加载/etc/logrotate.d/目录下的所有独立配置文件(核心,实现分应用管理)
include /etc/logrotate.d
# 不发送日志相关的邮件通知(避免冗余邮件)
nomail

2. 应用独立配置目录:/etc/logrotate.d/

为了方便管理不同服务的日志,我们会在这个目录下为每个服务创建单独的配置文件(如nginx、mysql、tomcat等),独立配置的优先级高于全局配置,可根据服务特性灵活设置。例如,nginx的日志轮转配置文件就是/etc/logrotate.d/nginx,mysql的则是/etc/logrotate.d/mysql。

核心优势:分服务配置,互不干扰,后续修改某一个服务的日志轮转规则,无需改动全局配置,降低运维风险。

3. 状态记录文件:/var/lib/logrotate/status

该文件用于记录每一个被管理日志的上次轮转时间,格式非常简单,每行对应一个日志文件,例如:

"/var/log/nginx/access.log" 2026-05-18
"/var/log/mysql/error.log" 2026-05-17

通过查看这个文件,可以快速判断某条日志是否正常轮转,若出现轮转异常,可先检查该文件的记录是否正常。

三、核心配置参数(实战必备)

logrotate的配置参数非常多,但核心常用参数只有十几个,按“功能分类”整理,结合示例说明,新手可直接复制到配置文件中使用,无需死记硬背。

1. 轮转触发条件(二选一,核心参数)

触发条件决定了“什么时候对日志进行轮转”,分为时间触发和大小触发,两者可共存,且大小触发的优先级更高(只要达到指定大小,无论时间是否到,都会触发轮转)。

参数

通俗含义

实战示例

daily

每天轮转一次(默认凌晨执行)

daily(直接写入配置)

weekly

每周轮转一次(默认周日执行)

weekly

monthly

每月1号轮转一次

monthly

size

日志达到指定大小后触发轮转

size 100M(达到100M轮转)、size 1G(达到1G轮转)

2. 旧日志保留与命名规则

这部分参数控制旧日志的保留数量、命名格式,避免旧日志过多占用磁盘空间。

  • rotate N:保留最近N份旧日志,超出N份的自动删除(N为数字),示例:rotate 30(保留30份,适合需要长期追溯日志的场景)。

  • dateext:旧日志后缀用日期格式(如access.log-20260519),替代默认的数字后缀(access.log.1),方便快速定位某一天的日志。

  • dateformat .%Y%m%d:自定义日期后缀格式,默认是“-日期”,可修改为“.%Y%m%d”(如access.log.20260519),%Y(年)、%m(月)、%d(日)为固定占位符。

  • olddir 路径:将归档后的旧日志移动到指定目录(需与原日志在同一分区,否则无法移动),示例:olddir /var/log/oldlogs(将旧日志放到/var/log/oldlogs目录)。

3. 旧日志压缩相关(节省磁盘空间)

日志文件通常可以压缩到原大小的1/10左右,开启压缩能大幅节省磁盘空间,核心参数如下:

  • compress:开启gzip压缩,归档后的旧日志会变成.gz格式(如access.log-20260519.gz),默认开启。

  • delaycompress:延迟压缩,本次轮转产生的旧日志(如access.log.1),下次轮转时再进行压缩。核心作用:避免程序还在向旧日志写入数据时,压缩导致日志损坏,生产环境建议必加。

  • nocompress:关闭压缩,适合日志量小、无需节省空间的场景(不推荐生产环境使用)。

4. 新建日志的权限与归属

轮转后会新建一个空日志,若权限或归属不正确,可能导致程序无法写入日志(出现权限拒绝错误),核心参数:

  • create 权限 属主 属组:新建日志的权限、属主、属组,示例:create 640 nginx nginx(新建日志权限为640,属主和属组都是nginx,适配nginx服务)。

  • nocreate:不新建日志,适合程序自身会自动创建日志的场景(如部分Java程序),若配置nocreate,轮转后需确保程序能正常新建日志,否则会导致日志丢失。

5. 容错与空日志处理(生产必加)

生产环境中,可能出现日志文件不存在、日志为空的情况,若不配置容错参数,logrotate会报错,影响其他日志的轮转,核心参数:

  • missingok:日志文件不存在时,不报错,继续执行其他日志的轮转(生产必加,避免因单个日志缺失导致整体轮转失败)。

  • notifempty:日志为空时,不进行轮转(避免生成大量空的归档日志,浪费空间)。

  • ifempty:即使日志为空,也进行轮转(默认参数,不推荐生产环境使用)。

6. 脚本触发(解决日志写入异常的核心)

这是最容易踩坑的地方!很多程序(如nginx、apache)会持续占用原日志文件的句柄,即使logrotate将原日志重命名,程序依然会向旧日志文件写入数据,导致新日志为空、旧日志持续变大。此时,就需要通过脚本发送信号,让程序重新加载日志,释放旧句柄,开始向新日志写入。

核心脚本相关参数:

  • prerotate:轮转之前执行的脚本(如备份日志、停止服务,很少用)。

  • postrotate:轮转之后执行的脚本(核心,用于发送信号,让程序重新加载日志)。

  • sharedscripts:当配置通配符日志(如/var/log/nginx/*.log)时,只执行一次脚本,避免每个日志文件都执行一次脚本(冗余且可能出错)。

  • endscript:脚本结束标记,必须与prerotate或postrotate成对出现。

最常用的脚本示例(nginx日志轮转后重新加载):

postrotate
    # 向nginx进程发送USR1信号,重新加载日志(不停止服务)
    /usr/bin/kill -USR1 $(cat /run/nginx.pid) > /dev/null 2>&1 || true
endscript

注意:不同程序的信号不同,nginx用USR1,apache用USR1,mysql用flush-logs,需根据程序特性调整。

7. 其他常用参数

  • copytruncate:复制原日志文件的内容到归档日志,然后清空原日志,不进行重命名。适合无法发送信号、无法重新加载日志的程序(如部分自定义Java程序),缺点是复制和清空之间有极短的时间差,可能丢失少量日志。

  • mail 邮箱地址:将被删除的旧日志发送到指定邮箱(不推荐,日志量大时会导致邮箱满溢)。

  • nomail:不发送日志相关邮件(默认参数,推荐保留)。

四、实战配置示例(生产直接复制可用)

结合上面的参数,整理3个最常用的实战配置,覆盖nginx、Java程序、mysql,新手可直接复制到对应配置文件中,只需根据自身路径调整即可。

示例1:Nginx 日志轮转配置(/etc/logrotate.d/nginx)

适配nginx的access.log和error.log,每日轮转、达到500M也轮转,保留30天日志,开启延迟压缩,自动重新加载日志,生产环境通用。

# 匹配nginx的所有日志文件
/var/log/nginx/*.log {
    daily                   # 每日轮转
    size 500M               # 达到500M也触发轮转
    rotate 30               # 保留30份旧日志(30天)
    dateext                 # 日期后缀
    compress                # 开启压缩
    delaycompress           # 延迟压缩(避免日志损坏)
    missingok               # 日志不存在不报错
    notifempty              # 空日志不轮转
    create 640 nginx nginx  # 新建日志权限和归属
    sharedscripts           # 通配符日志只执行一次脚本
    postrotate              # 轮转后执行脚本,重新加载nginx日志
        /usr/bin/kill -USR1 $(cat /run/nginx.pid) > /dev/null 2>&1 || true
    endscript
}

示例2:Java程序日志轮转配置(/etc/logrotate.d/java-app)

很多Java程序无法发送信号重新加载日志,因此用copytruncate参数,避免日志写入异常,适合大部分自定义Java服务。

# Java程序日志路径(根据自身实际路径修改)
/home/app/logs/app.log {
    daily                   # 每日轮转
    size 200M               # 达到200M触发轮转
    rotate 15               # 保留15份旧日志(15天)
    dateext                 # 日期后缀
    compress                # 开启压缩
    missingok               # 日志不存在不报错
    notifempty              # 空日志不轮转
    copytruncate            # 复制+清空原日志,不重命名
}

示例3:MySQL 日志轮转配置(/etc/logrotate.d/mysql)

MySQL的错误日志和慢查询日志,轮转后需要刷新日志,避免影响MySQL服务。

# MySQL日志路径(根据自身实际路径修改)
/var/log/mysql/*.log {
    weekly                  # 每周轮转
    size 1G                 # 达到1G触发轮转
    rotate 8                # 保留8份旧日志(2个月)
    dateext
    compress
    delaycompress
    missingok
    notifempty
    create 640 mysql mysql
    sharedscripts
    postrotate
        # 刷新MySQL日志,无需停止服务
        /usr/bin/mysqladmin -u root -p'your_password' flush-logs > /dev/null 2>&1 || true
    endscript
}

注意:MySQL的flush-logs需要root权限,若配置了密码,需替换your_password为实际MySQL root密码;若未设置密码,可删除-p'your_password'。

五、常用命令(实操必备)

logrotate的命令非常简单,核心常用命令只有4个,主要用于手动测试、调试和查看状态,无需复杂操作。

  1. 强制手动执行轮转(核心测试命令):无视时间和大小条件,立即对指定配置的日志进行轮转,用于测试配置是否正确。        logrotate -f /etc/logrotate.d/nginx说明:-f 表示force(强制),后面跟配置文件路径,执行后可查看日志是否正常切割、新建。

  2. 调试模式(推荐):不实际执行轮转操作,只输出执行过程,用于排查配置错误(比如脚本写错、路径错误)。        logrotate -d /etc/logrotate.d/nginx说明:-d 表示debug(调试),执行后会输出详细的执行步骤,若有错误,会明确提示错误原因(如权限不足、路径不存在)。

  3. 详细输出模式:实际执行轮转,并输出详细执行过程,用于确认轮转是否正常。        logrotate -v /etc/logrotate.d/nginx说明:-v 表示verbose(详细),执行后会显示每一步的操作结果(如是否轮转、是否压缩、是否执行脚本)。

  4. 查看轮转状态:查看每个日志的上次轮转时间,判断是否正常轮转。       cat /var/lib/logrotate/status

六、常见坑与避坑指南(生产必看)

新手使用logrotate时,很容易遇到各种异常,以下是5个最常见的坑,结合原因和解决方案,帮你快速避坑。

坑1:轮转后,程序依然向旧日志写入,新日志为空

原因:程序持续占用原日志文件句柄,重命名后未释放,依然向旧文件写入数据。

解决方案:在配置中添加postrotate脚本,发送信号让程序重新加载日志(优先推荐);若程序无法发送信号,改用copytruncate参数(注意少量日志丢失风险)。

坑2:一天内多次轮转,日志频繁切割

原因:若配置了size参数,日志达到指定大小就会触发轮转,一天内可能多次触发(属于正常现象);若未配置size参数,一天内多次轮转,大概率是手动执行了-f命令,或状态文件异常。

解决方案:若不需要大小触发,删除size参数;若需要,属于正常情况,无需处理;若状态文件异常,可删除/var/lib/logrotate/status文件,logrotate会重新生成。

坑3:轮转失败,提示“权限不足”

原因:logrotate执行时的权限(默认是root),无法新建日志、无法修改日志文件,或无法执行脚本。

解决方案:1. 配置create参数,指定正确的权限、属主、属组;2. 确保脚本有执行权限(chmod +x 脚本路径);3. 检查日志文件的属主属组,确保root有权限操作。

坑4:日志丢失,部分日志未归档

原因:1. 使用copytruncate参数时,复制和清空之间有极短时间差,导致少量日志丢失;2. 日志文件路径配置错误,logrotate未匹配到日志文件;3. 保留数量设置过小,旧日志被提前删除。

解决方案:1. 优先用postrotate脚本替代copytruncate;2. 检查日志路径是否正确,确保通配符(*)匹配正确;3. 适当增大rotate参数,保留更多旧日志。

坑5:通配符日志(*.log),脚本被重复执行

原因:未配置sharedscripts参数,logrotate会为每个匹配到的日志文件执行一次脚本,导致重复发送信号,影响服务正常运行。

解决方案:在配置中添加sharedscripts参数,确保通配符日志只执行一次脚本。

七、进阶:自定义轮转周期(小时级轮转)

默认情况下,logrotate由/etc/cron.daily/logrotate驱动,每天执行一次,若需要更频繁的轮转(如每小时轮转,适合日志量极大的服务,如高并发nginx),可自定义执行周期,步骤如下:

  1. 创建小时级定时任务文件:        touch /etc/cron.hourly/logrotate

  2. 复制每日定时任务的内容到小时级文件中(保持执行权限一致):        cp /etc/cron.daily/logrotate /etc/cron.hourly/

  3. 修改对应服务的logrotate配置,添加hourly参数(触发条件改为每小时轮转):/var/log/nginx/*.log {
        hourly                  # 每小时轮转
        size 100M               # 达到100M也触发
        rotate 24               # 保留24份(1天)
        # 其他参数不变...
    }

  4. 重启crond服务,使定时任务生效:        systemctl restart crond

注意:小时级轮转会产生大量归档日志,需合理设置rotate参数(如保留24份,对应1天),避免占用过多磁盘空间。

总结

logrotate的核心价值的是“自动化日志管理”,无需手动干预,就能解决日志膨胀的问题,是Linux运维的必备工具。其核心要点可总结为3点:1. 配置体系(全局+独立),灵活管理不同服务;2. 触发条件(时间+大小),按需设置轮转频率;3. 脚本触发(postrotate),解决日志写入异常。

新手入门时,可先复制本文的实战配置,根据自身服务的日志路径、需求调整参数,再用-d调试模式测试配置,确认无误后正常使用;遇到异常时,优先查看状态文件和调试输出,结合避坑指南快速排查,就能轻松掌握logrotate的使用。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 08:26:49 HTTP/2.0 GET : https://f.mffb.com.cn/a/494606.html
  2. 运行时间 : 0.120282s [ 吞吐率:8.31req/s ] 内存消耗:4,777.82kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=5795df333bb0db0f9a4bc80a8e4fe1e1
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000711s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000910s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000357s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000278s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000523s ]
  6. SELECT * FROM `set` [ RunTime:0.000197s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000619s ]
  8. SELECT * FROM `article` WHERE `id` = 494606 LIMIT 1 [ RunTime:0.002854s ]
  9. UPDATE `article` SET `lasttime` = 1783038409 WHERE `id` = 494606 [ RunTime:0.006411s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000322s ]
  11. SELECT * FROM `article` WHERE `id` < 494606 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.008690s ]
  12. SELECT * FROM `article` WHERE `id` > 494606 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002278s ]
  13. SELECT * FROM `article` WHERE `id` < 494606 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001908s ]
  14. SELECT * FROM `article` WHERE `id` < 494606 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008642s ]
  15. SELECT * FROM `article` WHERE `id` < 494606 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006884s ]
0.122056s