IIS 访问日志在哪里,如何清除和保存要[2026/8/10 22:26:06]
 

查看: 13  |  回复: 0
 IIS 访问日志在哪里,如何清除和保存要的占的最近30天的Log
楼主
发表于 今天 20:49 

默认路径:

C:\inetpub\logs\LogFiles\W3SVC1

W3SVC1 是第一个站点;如果你 VPS 里面多个网站,编号依次 W3SVC2、W3SVC3

日志文件格式:u_ex260810.log,按天生成独立日志文件

2、HTTP 错误日志(连接失败、端口报错、HTTPS 异常)

C:\Windows\System32\LogFiles\HTTPERR

快速打开方式:

 打开 IIS 管理器

选中你的 站点

双击右侧「日志」,这里直接看见日志存储目录、启用状态。


IIS 日志只保留 30 天,到期自动删除操作步骤:

IIS → 站点 → 双击【日志】

日志文件‑滚动类型:按每天

然后写一个 Windows 定时执行的 bat 清理脚本

:: 删除C盘IIS访问日志,保留最近30天
forfiles /p "C:\inetpub\logs\LogFiles\W3SVC1" /s /m *.log /d -30 /c "cmd /c del @path"
:: 删除http错误日志,保留30天
forfiles /p "C:\Windows\System32\LogFiles\HTTPERR" /s /m *.log /d -30 /c "cmd /c del @path"

计划任务设置每天凌晨 3 点运行脚本。


那么这个W3SVC X又是哪里看到的?此命令可以看到IIS内的全部域名绑定情况。

cd C:\Windows\System32\inetsrv
appcmd list sites

id 后面数字就是编号。

RetainLogs30Days.bat (以管理员身份运行)内容:

@echo off
fltmc >nul 2>&1 || (
    echo 权限不足,请右键【以管理员身份运行】
    pause
    exit
)

title IIS日志清理 保留W3SVC2 W3SVC8
set "IIS_LogRoot=C:\inetpub\logs\LogFiles"
set "KeepDay=30"

:: 清理W3SVC2、W3SVC8三十天之前日志
if exist "%IIS_LogRoot%\W3SVC2" (
    forfiles /p "%IIS_LogRoot%\W3SVC2" /m *.log /d -%KeepDay% /c "del /f /q @path"  2>nul
)
if exist "%IIS_LogRoot%\W3SVC8" (
    forfiles /p "%IIS_LogRoot%\W3SVC8" /m *.log /d -%KeepDay% /c "del /f /q @path"  2>nul
)

:: 遍历所有日志文件夹
for /d %%a in ("%IIS_LogRoot%\*") do (
    set "fname=%%~na"
    setlocal enabledelayedexpansion
    if /i not "!fname!"=="W3SVC2" if /i not "!fname!"=="W3SVC8" (
        echo 处理废弃目录:%%a
        :: 先清空全部日志
        del /f /s /q "%%a\*.log" 2>nul
        :: 尝试删除文件夹,正在被IIS占用时删除失败自动跳过
        rd /s /q "%%a" 2>nul
    )
    endlocal
)

:: 清理系统HTTPERR错误日志
forfiles /p "C:\Windows\System32\LogFiles\HTTPERR" /m *.log /d -%KeepDay% /c "del /f /q @path" 2>nul

echo 日志清理执行完毕
pause


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2026 MaNongKu.com