
Python์๋ print๋ผ๋ ๊ธฐ๋ฅ์ด ์๋ค. ๋ณดํต์ ์ด ๊ธฐ๋ฅ์ ํตํด์ output์ ํ์ธํ๋ค.
๊ทธ๋ฌ๋ print๋ก๋ output์ ํ์ธํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ํ์๋ airflow์ ์๋ฌ ๋ก๊ทธ๊ฐ print๋ก๋ ํ์ธ๋์ง ์์ logging ๋ชจ๋์ ํ์ฉํ๋ค.
logging์์๋ print๋ณด๋ค ์ข ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋, ํ ๋ฒ ์์๋ณด๋๋ก ํ์! ๐
1. logging ๋ชจ๋
๋จผ์ logging ๋ชจ๋์ ๋ํด์ ์์๋ณด์
1. log ์ถ๋ ฅ ๊ธฐ์ค
log๊ฐ ์ถ๋ ฅ๋๋ ๊ธฐ์ค์ ์ค์ ํฉ๋๋ค.
์ถ๋ ฅ ๊ธฐ์ค์ ERROR๋ก ๋๊ฒ ๋๋ค๋ฉด ๊ทธ ์๋ ์์ค์ธ DEBUG/INFO/WARNING์ ์ถ๋ ฅ๋์ง ์๋๋ค.

2. log ์ถ๋ ฅ ํ์
- asctime: ์ผ์๋ฅผ ๋ํ๋ ๋๋ค.
- levelname: ์ถ๋ ฅ ์์ค์ ๋ํ๋ ๋๋ค.
- message: ์ถ๋ ฅ ๋ด์ฉ์ ๋ํ๋ ๋๋ค.

3. log ์ถ๋ ฅ / ํ์ผ์ ์ถ๋ ฅ
- StreamHandler: ์ฝ์์ ์ถ๋ ฅํฉ๋๋ค.
- FileHandler: ํ์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
2. Logger ํด๋์คํ
๋ง์ python ํ์ผ์์ ์์ ํ๋ค๋ณด๋ฉด ๊ทธ๋๋ง๋ค Logger๋ฅผ ์ ์ํ๋ ๊ฒ์ด ๋นํจ์จ์ ์ผ๋ก ๋๊ปด์ง ๋๊ฐ ์๋ค. ๊ทธ๋์ ํด๋์ค๋ก ์ ์ํ๊ณ , ํ์ํ ๋๋ง๋ค ๋ถ๋ฌ์๋ค.

์ฝ๋๋ฅผ ํ์ธํด๋ณด๋ฉด ๋ ๊ฐ์ง ํน์ง์ด ์๋ค.
1. if len(self.logger.handlers) == 0
handler์ ๊ณ์ํด์ logging์ ๋ฑ๋กํ๊ฒ ๋๋ฉด ์ค๋ณต์ผ๋ก ๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ ๊ฐ๋ฅ์ฑ์ด ์๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์ ์ถ๊ฐ๋ ์ฝ๋์ด๋ค.
2. self.file_name = os.path.basename(file)
๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ๋ ํ์ผ๋ช ์ ํ์ธํ๊ณ ์ถ์๋ค. ๊ทธ๋์ ์ถ๊ฐํ ์ฝ๋์ด๋ค.
์ฐธ๊ณ
https://stickode.tistory.com/209
https://minimin2.tistory.com/41โ