2017-06-29 13 views

答えて

0

nginxのは、任意のWindowsまたは他のプラットフォーム上roloverログのモジュールを内蔵しておりません Nginx loggging tips

+0

ありがとう!しかし、私はこのソリューションはcentOSのために動作すると思う、私はWindowsプラットフォーム上でnginxを設定しました。 –

0

あなたはnginx.exe使用してnginxのを実行している場合は、あなたが実行している場合、あなたはnginxのログを再度開くことができ、以下のリンクをお試しくださいnginxのあなたがサービスを停止する必要がインストールされたサービスを使用して、Windowsマシン上で

REM script to rotates nginx logs from java/windows cmd prompt 

REM rolloverNginxLogs.bat [maxFileSize in bytes] [retainCount] 
REM e.g rolloverNginxLogs.bat 10000 5 

@echo off 
setlocal EnableDelayedExpansion 
pushd C:\nginx\logs 

set ERRORLEVEL=0 
set maxFileSize=%1 
set retainCount=%2 
set errorLogFile=error.log 
set accessLogFile=access.log 

set rotateAccessLogFile="" 
set rotateErrorLogFile="" 
set rotateFile="" 

REM set current time, replace " " with "0" for hours less than 10 
set currentTime=%time:~0,2%%time:~3,2%%time:~6,2% 
if %currentTime% LSS 100000 (set currentTime=%currentTime: =0%) 

REM check if access.log file rotation required 
for %%A in (%accessLogFile%) do (
    echo.Size of "%%A" is %%~zA bytes 
    if /I %%~zA GTR %maxFileSize% (
     set rotateAccessLogFile=true 
     set rotateFile=true 
    ) 
) 

REM check if error.log file rotation required 
for %%A in (%errorLogFile%) do (
    echo.Size of "%%A" is %%~zA bytes 
    if /I %%~zA GTR %maxFileSize% (
     set rotateErrorLogFile=true 
     set rotateFile=true 
    ) 
) 

REM if required rotate logs otherwise exit 
if "%rotateFile%" EQU "true" (
    goto ROTATELOG 
) else (
    goto DONE 
) 

:ROTATELOG 
REM check whether the service is running if running then stop service 
for /F "tokens=3 delims=: " %%H in ('sc query "nginx" ^| findstr "STATE"') do (
    if /I "%%H" EQU "RUNNING" (
    net stop "nginx"  
) 
) 

REM rotate error log 
if "%rotateErrorLogFile%" EQU "true" (
    ren error.log error-%DATE%-%currentTime%.log 
    for /f "skip=%retainCount% eol=: delims=" %%F in ('dir /b /o-d /a-d error*.log') do @del "%%F" 
) 

REM rotate access log 
if "%rotateAccessLogFile%" EQU "true" (
    ren access.log access-%DATE%-%currentTime%.log 
    for /f "skip=%retainCount% eol=: delims=" %%F in ('dir /b /o-d /a-d access*.log') do @del "%%F" 
) 

REM check if the service is not running, start service 
for /F "tokens=3 delims=: " %%H in ('sc query "nginx" ^| findstr "STATE"') do (
    if /I "%%H" NEQ "RUNNING" (

    echo starting nginx service 
    net start "nginx" 
) 
) 

:DONE 
popd 
exit %ERRORLEVEL% 
をnginxのエラーログとアクセスログを回転させるためのバッチスクリプト以下

を使用し、その後、ログを回転させて、再度サービスを開始

関連する問題