Classic ASP에서 FileSystemObject를 이용한 로그 파일 작성하기

Classic ASP에서 FileSystemObject를 이용한 로그 파일 작성하기

Classic ASP에서는 디버깅이 복잡하며 때로는 오류 발생 원인을 파악하기 어려운 상황이 발생할 수 있습니다. 이러한 경우 로그 파일을 작성하여 애플리케이션의 실행 과정을 기록함으로써 문제가 발생한 시점과 상황을 확인할 수 있습니다. 로그 파일은 디버깅, 모니터링 및 오류 추적을 위해서 많이 활용되고 있습니다.

1. FileSystemObject 라이브러리

Classic ASP에서 로그 파일 작성을 위해 FileSystemObject 라이브러리를 사용할 수 있습니다. FileSystemObject는 파일 및 폴더를 관리하기 위한 객체로 파일을 생성, 읽기, 쓰기, 삭제 등 다양한 파일 관리 기능을 제공합니다.

2. 로그 파일 작성 예제 코드

▼ 예제 코드

<%
    ' 인코딩 설정
    Response.CharSet = "euc-kr"

    ' 로그 파일 경로 설정
    Dim logFile
    logFile = Server.MapPath("./Log/log.txt")

    ' FileSystemObject를 이용하여 로그 파일에 쓰기 작업을 수행합니다.
    Dim fs, log
    Set fs = Server.CreateObject("Scripting.FileSystemObject")
    Set log = fs.OpenTextFile(logFile, 8, True, -1) ' 인코딩 옵션으로 TristateTrue(-1) 추가

    ' 로그 파일에 텍스트 작성
    log.WriteLine(Date() & " 디버깅 Start=============")
    log.WriteLine("변수값1")
    log.WriteLine(Date() & " 디버깅 End==============")

    ' 로그 파일 닫기 및 객체 해제
    log.Close
    Set log = Nothing
    Set fs = Nothing
%>
  • 코딩 설정: 웹 페이지의 인코딩을 “euc-kr”로 설정합니다. 이렇게 설정하면 한글 문자가 올바르게 처리됩니다.
  • 로그 파일 경로 설정: 웹 애플리케이션에 맞게 로그 파일의 경로를 설정합니다. Server.MapPath 메서드를 사용하여 상대 경로를 절대 경로로 변환할 수 있습니다.
  • FileSystemObject를 이용한 로그 파일 쓰기 작업: FileSystemObject를 사용하여 로그 파일에 쓰기 작업을 수행합니다. 로그 파일을 추가 모드로 열어 기존 내용 뒤에 새로운 내용을 기록할 수 있습니다. 인코딩 옵션으로 TristateTrue(-1)를 추가하여 유니코드로 처리합니다.
  • 로그 파일에 텍스트 작성: 로그 파일에 필요한 텍스트(예: 변수 값, 실행 시간, 오류 메시지 등)를 작성합니다.
  • 로그 파일 닫기 및 객체 해제: 작업이 끝나면 로그 파일을 닫고, 사용한 객체를 해제하여 시스템 리소스를 반환합니다.

3. OpenTextFile 메서드의 인수

1. FileName (필수): 열려는 파일의 이름과 경로를 나타냅니다.

2. IOMode (선택): 파일을 열 때 파일 모드를 지정하는 데 사용됩니다. 다음 상수 중 하나를 사용할 수 있습니다.

  • ForReading (1): 읽기 전용 모드로 파일을 엽니다.
  • ForWriting (2): 쓰기 전용 모드로 파일을 엽니다. 파일의 내용을 덮어쓸 경우 사용합니다.
  • ForAppending (8): 추가 모드로 파일을 엽니다. 기존 파일의 끝에 새로운 내용을 추가할 경우 사용합니다.


3. Create (선택): 파일이 존재하지 않는 경우 새 파일을 생성할지 여부를 지정합니다. 기본값은 False입니다.

  • True: 존재하지 않는 경우 새 파일을 생성합니다.
  • False: 존재하지 않는 경우 새 파일을 생성하지 않고 오류를 반환합니다.


4. Format (선택): 파일을 연 후 문자열을 유니코드, ASCII 또는 시스템 기본값으로 처리할지를 지정합니다. 다음 상수 중 하나를 사용할 수 있습니다.

  • TristateUseDefault (-2): 시스템 기본값을 사용합니다.
  • TristateTrue (-1): 문자열을 유니코드로 처리합니다.
  • TristateFalse (0): 문자열을 ASCII로 처리합니다.


▼ 다음 코드는 로그 파일을 추가 모드로 열고, 파일이 없으면 새 파일을 생성하며, 문자열을 유니코드로 처리합니다.

Set log = fs.OpenTextFile(logFile, 8, True, -1)

4. 주의사항

  • 파일 및 폴더 권한: 웹 서버가 로그 파일에 접근하고 쓸 수 있는지 확인해야 합니다. 권한이 없는 경우 500 에러가 발생할 수 있으므로 적절한 권한을 부여해야 합니다.
  • 디스크 공간: 로그 파일의 크기가 커질수록 디스크 공간이 점차 줄어들게 됩니다. 따라서 로그 파일의 크기를 주기적으로 모니터링하고 필요한 경우 로그 파일을 백업 및 삭제하여 디스크 공간을 확보하는 것이 중요합니다.


이 글이 도움이 되셨다면 공유를 부탁 드립니다. 다음 글에서 뵙겠습니다!

관련 이전 게시글

Classic ASP에서 CDO를 사용하여 이메일 발송하기

Classic ASP에서 XMLHTTP를 사용한 JSON 통신: 예제 코드 및 구현 방법

위로 스크롤