AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 11892
In Process
Jrgns
Jrgns
Asked: 2009-05-25 19:29:42 +0800 CST2009-05-25 19:29:42 +0800 CST 2009-05-25 19:29:42 +0800 CST

如何在 Windows Server 2003 上轮换 PHP 日志文件?

  • 772

我们的 PHP 日志文件越来越大,我们需要一个实用程序来定期轮换文件。这是在 Windows 2003 服务器上。

是否有类似于 Linux 的程序/脚本logrotate?

是的,我们正忙于检查 PHP 脚本以删除所有错误、通知和警告。

windows-server-2003 logging
  • 5 5 个回答
  • 6081 Views

5 个回答

  • Voted
  1. sagi
    2009-07-11T23:54:40+08:002009-07-11T23:54:40+08:00

    如果您使用 Apache 运行 PHP,那么有一个名为rotatelogs的内置实用程序,您可以通过管道传输您的日志,它会自动为您执行日志轮换。这是在 Windows 上使用它的方法:

    ErrorLog "|bin/rotatelogs.exe -l logs/error/error.%Y-%m-%d.log 86400"
    

    另一种选择是将运行时的 PHP 错误日志位置设置为包含日期的文件,即将其添加到您的前置文件中:

    ini_set('error_log', 'path_to_logs/php_error.'.date('Y-m-d').'.log');
    
    • 3
  2. Gavin McTaggart
    2009-05-25T21:41:54+08:002009-05-25T21:41:54+08:00

    我知道你的痛苦。几年前,我最终阅读了 logrotate 的源代码,并将其移植到了 Windows(在此过程中从 C 转换为 Perl——是的,我是一个贪吃的惩罚者)。

    Windows 日志轮换的主要问题是文件锁定。如果文件在轮换期间打开,则无法移动,重命名等。我解决了这个问题,通过决定对于我的应用程序,轮换比丢失的一些日志行更重要,然后简单地复制,然后truncate (不过,我确信它还有更多内容,不幸的是我没有现成的源代码)。无论如何,事实证明这个操作是如此之快,以至于我非常怀疑我们在它的使用历史上已经丢失了不止几行。

    我相信,这就是为什么原生 Windows 应用程序通常会进行自己的日志轮换的原因——应用程序本身持有锁,并且可以在轮换发生时缓存日志消息,以供以后刷新。

    • 0
  3. LapTop006
    2009-05-26T06:08:10+08:002009-05-26T06:08:10+08:00

    根据我的经验,最好的方法是禁用内部 PHP 日志并将其记录到 Windows 错误日志(或 unix 主机上的 syslog)。

    一旦有 ntsyslog 或类似的可以将日志推送到 *nix 主机,其中 logwatch 等工具使过滤变得容易。

    • 0
  4. John Rennie
    2009-05-28T23:14:04+08:002009-05-28T23:14:04+08:00

    我不使用 PHP,但使用 SQUID,我有一个在午夜运行并停止 SQUID、重命名日志文件并重新启动 SQUID 的批处理文件。要生成文件名,请使用以下内容:

    for /f "tokens=1" %%i in ('date /t') do set THEDATE=%%i
    set THEDAY=%THEDATE:~0,2%
    set FILENAME=Squid-%THEDAY%.log
    

    这是英国日期格式,其中日期是前两个字符。只需更改第二行,您就可以挑选出日期的任何部分。

    JR

    • 0
  5. Ausmith1
    2009-06-27T15:39:24+08:002009-06-27T15:39:24+08:00

    我使用“ rnanalog ”实用程序来轮换我的 Perforce 日志,我使用以下命令:

    C:\Support\Scripts\rnanalog.exe C:\Data\p4journal\audit.log C:\Data\p4backups\audit.logs\audit_mmmddccyy.log
    

    在批处理文件中,只需在午夜通过计划任务运行它。

    如果文件锁定是一个问题,那么您可能需要在日志轮换时停止服务几秒钟......

    • 0

相关问题

  • 如何使用脚本远程重启 Windows 服务?

  • IIS 6.0 (Windows Server 2003) 上的 HTTP 压缩

  • 从 2003 年迁移到 2008 年 Microsoft 群集技术

  • 有什么理由使用 Windows Server 2003 而不是 Server 2008?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve