본문 바로가기

개발/Python & Flask

logging에 필터추가하기! 초간단 예시

필터를 추가한다고? 그게 뭔데?

 

필터를 추가한다는 말이 와닿지 않는데,

그냥 asctime, message 처럼,

Formatter에서 자동인식해서 출력해주는 로그 정보를 추가하거나 변경하는 것을 말한다.

 

%(asctime)s - %(myfavoritefood)s -

와 같이.. ㅎ

 

 

회사 팀장님이 주신 포맷 그대로 로깅을 하기 위해 포맷을 가져왔다.

 

그 중 3개의 정보는 원래 로깅의 record 에 자체포함되어있지 않았고,

ip 는 원래 포함되어있는 항목이나 커스터마이징이 필요했다.

( 그냥 ip를 출력할 경우 서버 자체의 ip가 찍히는데, 현재 상황은 클라이언트의 IP를 찍어야 했다.)

 

class whatEverFileter( logging.Filter ):
	def filter(self, record) :
		record.ip = "123,234,345,456" #내 마음대로 만들기
		record.abcd = "WhatEver Msg"
		return True

위 형식과 같이 마음대로 추가하거나, 기존 항목을 수정할 수 있었다.

 

하지만 여기서 filename 을 남길 때,

만약 모든 기능과 함수를 app.py 한 파일에 다 선언하면 

로그에 따라서 문제점을 찾을 때 어려울 것으로 예상된다.

( 로그에서 모든 함수의 실행파일이 app.py 로 뜨기 때문에)

이것을 위해서라도 py파일을 세분화 시키는 것이 필요하겠다.

반응형