Welcome! ๐Ÿ™‹โ€โ™‚๏ธ View more

Engineering ๐Ÿ’ป/Tools

[Python] logging ์‚ฌ์šฉ๋ฒ•๊ณผ ํด๋ž˜์Šคํ™”

DeepFlame 2022. 3. 11. 18:00

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โ€‹