일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GPT-4's answer
- write by GPT-4
- android
- kotlin
- flet
- oracle
- Database
- 시스템
- 자바네트워크
- spring integration
- python
- 자바
- 자바암호
- chatGPT's answer
- 소프트웨어공학
- 리눅스
- 파이썬
- 인프라
- NIO
- jpa
- 역학
- 코틀린
- Java
- 유닉스
- write by chatGPT
- spring data jpa
- 고전역학
- JVM
- 데이터베이스
- 웹 크롤링
- Today
- Total
기억을 지배하는 기록
Scrapy, logging 본문
Scrapy에서 로그를 작성하는 방법은 여러 가지가 있습니다. 로깅 시스템을 사용하면 크롤링 프로세스의 세부 사항을 기록하여 디버깅을 쉽게 하고 문제를 빠르게 해결할 수 있습니다.
Scrapy 로깅 설정
Scrapy는 Python의 내장 logging
라이브러리를 사용하여 로그를 관리합니다. 기본적으로 Scrapy는 다양한 로그 레벨(INFO, WARNING, ERROR 등)로 메시지를 출력합니다.
기본 로그 설정
Scrapy의 settings.py
파일에서 로그 레벨을 설정할 수 있습니다. 예를 들어, 로그 레벨을 DEBUG로 설정하면 다음과 같이 할 수 있습니다:
LOG_LEVEL = 'DEBUG'
이렇게 하면 DEBUG 레벨 이상의 모든 로그가 출력됩니다.
로그 파일 설정
로그 메시지를 파일에 저장하고 싶다면, settings.py
에 다음과 같이 추가하세요:
LOG_FILE = 'scrapy_log.txt'
이 설정은 모든 로그를 scrapy_log.txt
파일에 저장합니다.
커스텀 로그 핸들러
Scrapy에서 커스텀 로그 핸들러를 설정하려면 Python의 logging
모듈을 사용하여 핸들러를 추가할 수 있습니다. 예를 들어, 로그를 콘솔과 파일에 동시에 출력하도록 설정할 수 있습니다:
import logging
from scrapy.utils.log import configure_logging
# 기존의 로그 설정을 무시하고 새로 설정
configure_logging(install_root_handler=False)
logging.basicConfig(
filename='mycrawler.log',
format='%(levelname)s: %(message)s',
level=logging.DEBUG
)
# 콘솔 로그 설정 추가
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
로그 활용 예
로그를 활용하면 크롤러의 상태를 모니터링하고 문제를 식별하는 데 도움이 됩니다. 예를 들어, 특정 조건을 만족하는 경우에만 로그를 남기도록 설정할 수 있습니다:
def parse(self, response):
if 'error' in response.body:
self.logger.error('Error found in response.')
else:
self.logger.info('Response received successfully.')
위 코드는 응답에 'error'가 포함되어 있으면 오류 로그를, 그렇지 않으면 정보 로그를 남깁니다.
Scrapy의 로깅 시스템을 효과적으로 사용하면 크롤러의 성능을 모니터링하고 필요에 따라 조정할 수 있습니다. 로그를 통해 크롤링 프로세스의 투명성과 관리 가능성을 높일 수 있습니다.
'Web Crawling for Beginners' 카테고리의 다른 글
Scrapy, CrawlSpider (0) | 2024.07.05 |
---|---|
Python Visualization 라이브러리 (0) | 2024.05.24 |
Scrapy, A multi-page website into An Excel file (0) | 2024.05.16 |
Scrapy 프레임워크 (0) | 2024.05.16 |
Selenium: 웹 자동화 및 자바스크립트 처리 (0) | 2024.05.09 |