windows - Apache 轮换访问和错误日​​志 Windows

标签 windows apache logging logrotate

如何在 Window 2000 机器上轮换 Apache 访问和错误日​​志?

我在下面包含我的批处理文件作为答案。

有没有办法直接通过 Apache 配置文件执行此操作?我目前正在使用以下自定义日志命令来生成每日日志。

CustomLog '|""*Apache-Path/bin/rotatelogs.exe""*Apache-Path/logs/backup/internet_access_%d-%m-%y.log"86400' 合并

最佳答案

这是 DOS 批处理文件,按注释修改。 我每周运行一次,它会保留 8 周的压缩备份。 您需要安装 7 zip。

我没有对路径进行参数化,请随意。


@echo off

:: Name - svrlogmng.bat
:: Description - Server Log File Manager
::
:: History
:: Date         Authory    Change
:: 22-May-2005  AGButler   Original
:: 14-Jan-2008  AIMackenzie Changed net stops and paths where necessary

:: ========================================================
:: setup variables and parameters
:: ========================================================

:: generate date and time variables
for /f "tokens=2,3,4 delims=/ " %%i in ('date /T') do set trdt=%%k%%j%%i
for /f "tokens=1,2 delims=: " %%i in ('time /T') do set trtt=%%i%%j
set nftu=%trdt%%trtt%

:: set the Number Of Archives To Keep
set /a noatk=8

:: ========================================================
:: turn over log files
:: ========================================================

:: change to the apache log file directory
cd /D "D:\Program Files\Apache Software Foundation\Apache2.2\logs\"

:: stop Apache Service, Move log files and restart Apache Service
"D:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe" -k stop

echo %nftu% >> access.log
move "D:\Program Files\Apache Software Foundation\Apache2.2\logs\access.log" "D:\Program Files\Apache Software Foundation\Apache2.2\logs\%nftu%_access.log"

echo %nftu% >> error.log
move "D:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log" "D:\Program Files\Apache Software Foundation\Apache2.2\logs\%nftu%_error.log"

"D:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe" -k start

:: ========================================================
:: zip todays Access and Error log files, then delete old logs
:: ========================================================

:: zip the files
"D:\Program Files\7-Zip\7z.exe" a -tzip %nftu%_logs.zip %nftu%_access.log %nftu%_error.log

:: del the files
del /Q %nftu%_*.log

:: ========================================================
:: rotate the zip files
:: ========================================================

:: make list of archive zip files
type NUL > arclist.dat
for /F "tokens=1,2 delims=[] " %%i in ('dir /B *_logs.zip ^| find /N "_logs.zip"') do echo  %%i = %%j>> arclist.dat

:: count total number of files
for /F "tokens=1 delims=" %%i in ('type arclist.dat ^| find /C "_logs.zip"') do set tnof=%%i

:: setup for and create the deletion list
set /a negtk=%noatk%*-1
set /a tntd=%tnof% - %noatk%

type NUL>dellist.dat
for /L %%i in (%negtk%,1,%tntd%) do find " %%i = " arclist.dat >> dellist.dat

:: del the old files
for /F "tokens=3 delims= " %%i in ('find "_logs.zip" dellist.dat') do del /Q %%i

:: remove temp files
del /Q arclist.dat
del /Q dellist.dat

关于windows - Apache 轮换访问和错误日​​志 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355737/

相关文章:

windows - 如何在Windows主题下使用Delphi显示一个 "greyed-out"只读复选框

c++ - C/C++ GetAsyncKeyState() 组合键

c++ - C++/C 中以太网 ip 中的 eth_dr 是什么?

windows - 有没有办法检查 MS 安全中心的病毒防护状态?

apache - com.sun.ws.rs.ext.RuntimeDelegateImpl 错误

java - 如何设置 Wildfly 服务器日志的最大大小

logging - 我在哪里可以找到持续测试的项目存储库?

apache - 本地开发服务器上的 ssl

apache - 使用 https 将公园域重定向到 http

Azure Log Analytics - 加入失败 - 数据类型不一致