Windows平台下设置Nginx日志按日期分割

2016-09-18

在使用Nginx做负载均衡一段时间后,发现默认的log配置下,log文件不会按照日期或其他条件进行分割文件。搜索网络,未发现有该方面的配置项设置。于是便另寻他法。

受到 Windows下nginx定时分割日志的启发,计划采用windows计划任务加脚本的方式进行实现。

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
@echo off
rem --------------------------------------------
rem nginx的调度任务
rem 注:此脚本务必放入nginx根目录
rem author: chinleo
rem --------------------------------------------
rem 设置此脚本所在路径为根目录
cd %~dp0
set ROOT_DIR=%cd%
rem 设置LOG文件夹,如有更改请更改下面的路径
set LOG_DIR=%ROOT_DIR%\logs
set ERR_LOG=%LOG_DIR%\error.log
set ACS_LOG=%LOG_DIR%\access.log
rem echo ROOT_DIR : %ROOT_DIR%
rem echo "LOG_DIR : %LOG_DIR%"
rem echo "ERR_LOG : %ERR_LOG%"
rem echo "ACS_LOG : %ACS_LOG%"
rem 寻找error.log
if exist "%ERR_LOG%" goto renameErrLog
echo error.log不存在
goto end
:renameErrLog
ren %ERR_LOG% error.%date:~0,4%-%date:~5,2%-%date:~8,2%.log
echo error.log改名完成
goto renameAcsLog
:renameAcsLog
if not exist "%ACS_LOG%" goto end
ren %ACS_LOG% access.%date:~0,4%-%date:~5,2%-%date:~8,2%.log
echo access.log改名完成
goto restartNginx
:restartNginx
echo nginx开始重启
cd %ROOT_DIR%
nginx -s reload
:end

计划任务的配置后期补上