728x90

이번에 회사에 제휴 서비스가 추가 되면서 메일을 보내는 로그를 남겨달라는 지시가 내려왔습니다.
DB에 저장할 수 있지만 자주 로그를 생성할 시 DB에 부하를 줄 수 있다는 글을 본 적이 있는 것 같아 txt파일을 만들어 로그를 남겨보려 합니다!
코드
function logSave($log){
// 로그 저장할 dir 경로
$logPathDir = "/consulting_log";
// 지정 dir에 현재 년/월 경로로 지정
$filePath = $logPathDir."/".date("Y")."/".date("n");
$folderYear = date("Y"); // 연도
$folderMonth = date("n"); // 월
// 해당 연도 폴더가 없을 경우 777권한으로 생성
if(!is_dir($logPathDir."/".$folderYear)){
mkdir($logPathDir."/".$folderYear, 0777);
}
// 해당 월 폴더가 없을 경우 777권한으로 생성
if(!is_dir($logPathDir."/".$folderYear."/".$folderMonth)){
mkdir(($logPathDir."/".$folderYear."/".$folderMonth), 0777);
}
//append 쓰기 전용 파일로 오픈
$log_file = fopen($logPathDir."/".$folderYear."/".$folderMonth."/".date("Ymd").".txt", "a");
// log 작성
fwrite($log_file, $log."\r\n");
// 로그 파일 닫기
fclose($log_file);
}
위 함수를 메일 전송 함수에서 실행시키면 로그가 쌓이는 것을 확인 할 수 있습니다!
+ 추가
fopen 함수 의 파일 접근 모드
모드 | 설명 |
r | • 읽기(read) 전용으로 파일을 오픈 • 파일이 없거나 찾을 수 없을 경우 호출 실패 |
w | • 쓰기(write) 전용으로 파일을 오픈 • 지정한 파일명이 있는 경우 : 파일 내용을 모두 지우고 새로 만듦 • 지정한 파일명이 없는 경우 : 새로운 파일을 생성 |
a | • 추가(append) 쓰기 전용 파일을 오픈 • 지정한 파일이 있으면 파일의 끝부터 내용을 추가 |
r+ | • 파일을 읽고 쓰기 위해 오픈 • 지정한 파일이 있는 경우 : 기존의 내용을 덮어씀 • 지정한 파일이 없는 경우 : 새로운 파일을 생성해서 데이터를 씀 (저장) |
w+ | • 파일을 읽고 쓰기 위해 오픈 • 지정한 파일이 있는 경우 : 파일의 내용을 모두 지우고 새 파일을 만듦 • 지정한 파일이 없는 경우 : 새로운 파일을 생성 |
a+ | • 파일을 읽고 추가 쓰기 위해 오픈 • 지정한 파일이 있으면 파일의 끝부터 내용을 추가 • 나머지 기능은 r+와 동일 |
728x90
'Language > php' 카테고리의 다른 글
[PHP] 해외 ip 차단 (feat. IPinfo.io) (0) | 2023.10.04 |
---|---|
[PHP] PHP 배열과 json_encode( ) (1) (0) | 2023.01.26 |
[PHP] nl2br() - 문자열 줄 바꿈 함수 (0) | 2023.01.16 |
[PHP] 큰 따옴표(" ")와 작은 따옴표(' ')의 차이 (0) | 2023.01.03 |
[PHP] 대입 연산자 (0) | 2023.01.02 |
댓글