PHP로 로그 교환 기능 구현

5436 단어 기록 교대PHP

입문


필요에 따라 PHP로 로그 교환 기능을 만들기로 했습니다.
가능하다면 중간과 자유 도구로 쉽게 설정하면 되는데...
PHP 초보자이기 때문에 어려움이 없습니다. ① 저장 기한이 지난 백업 파일을 삭제합니다.② 로그 파일의 백업을 가져옵니다.에서 기술한 장면은 다음과 같은 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 부피를 분석하도록 한다.
비망록으로 남기다.

기록 교대


PHP 구현 결과


[전제]
  • 로그 파일 이름은 "batch.log"입니다
  • 매일 한 번씩 백업합니다
  • 백업 파일은 로그 파일 이름 뒤에 시스템 날짜를 추가합니다
  • 로그 저장 일수 5일
  • log_rotate.php
    <?php
        // タイムゾーン指定 ※date関数エラー回避のため
        date_default_timezone_set('Asia/Tokyo');
    
        // ログファイルパス ※環境に応じて書き換える必要がある。
        $logPath = "C:/work/log";
        $logName = "batch.log";
    
        // ログ保存日数
        $saveDays = "5";
    
        // ログ保存日数を超過したバックアップログを削除する。
        foreach (scandir($logPath) as $file) {
            if (preg_match("/" . $logName . "\./", $file)) {
                $delPointDate = date('Ymd',strtotime("-". $saveDays ." day"));
                $backupLogDate = date("Ymd", filemtime($logPath . "/" . $file));
                if ($backupLogDate - $delPointDate < 0) {
                    unlink($logPath . "/" . $file);
                }
            }
        }
    
        /*
         * ログファイルをリネームし、バックアップを行う。
         * 日次のバックアップなので、バックアップファイルのファイル名後尾にYYYYMMDDを付与。
         * リネームしたら空のログファイルを配置する。
         */
        $sysDate = date("Ymd");
        if (file_exists($logPath)) {
            rename($logPath . "/" .  $logName, $logPath . "/" .  $logName . "." . $sysDate);
        }
        touch($logPath . "/" .  $logName);
    ?>
    

    로그 교환 기능을 실행한 결과


    실행 날짜 처리 ※ PC를 수동으로 조작한 날짜

    처리 실행 전

    처리 후
  • 로그 저장 기한이 만료된 8/27분의 백업 파일이 삭제됩니다
  • 처리 실행 날짜(9/2)에 로그 파일을 백업했습니다
  • 좋은 웹페이지 즐겨찾기