5.3 KiB
๋ก๊น logging
๐ค ํธ๋์คํฌ๋จธ๋ ์ค์ ์ง์ค์ ๋ก๊น ์์คํ ์ ์ ๊ณตํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๋ ฅ ๋ ๋ฒจ์ ์ฝ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ณธ ์ถ๋ ฅ ๋ ๋ฒจ์ WARNING์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค.
์ถ๋ ฅ ๋ ๋ฒจ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ง์ ์ ์ธ ์ค์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ถ๋ ฅ ๋ ๋ฒจ์ INFO ์์ค์ผ๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
import transformers
transformers.logging.set_verbosity_info()
ํ๊ฒฝ ๋ณ์ TRANSFORMERS_VERBOSITY๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์ถ๋ ฅ ๋ ๋ฒจ์ ์ฌ์ ์ํ ์๋ ์์ต๋๋ค. ์ด๋ฅผ debug, info, warning, error, critical, fatal ์ค ํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
TRANSFORMERS_VERBOSITY=error ./myprogram.py
๋ํ, ์ผ๋ถ warnings๋ ํ๊ฒฝ ๋ณ์ TRANSFORMERS_NO_ADVISORY_WARNINGS๋ฅผ 1๊ณผ ๊ฐ์ true ๊ฐ์ผ๋ก ์ค์ ํ์ฌ ๋นํ์ฑํํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด [logger.warning_advice]๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ก๋ ๊ฒฝ๊ณ ๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
TRANSFORMERS_NO_ADVISORY_WARNINGS=1 ./myprogram.py
๋ค์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋์ผํ ๋ก๊ฑฐ๋ฅผ ์์ ์ ๋ชจ๋์ด๋ ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์์ ๋๋ค.
from transformers.utils import logging
logging.set_verbosity_info()
logger = logging.get_logger("transformers")
logger.info("INFO")
logger.warning("WARN")
์ด ๋ก๊น
๋ชจ๋์ ๋ชจ๋ ๋ฉ์๋๋ ์๋์ ๋ฌธ์ํ๋์ด ์์ผ๋ฉฐ, ์ฃผ์ ๋ฉ์๋๋ ํ์ฌ ๋ก๊ฑฐ์ ์ถ๋ ฅ ์์ค์ ๊ฐ์ ธ์ค๋ [logging.get_verbosity]์ ์ํ๋ ์ถ๋ ฅ ์์ค์ผ๋ก ์ค์ ํ๋ [logging.set_verbosity] ์
๋๋ค. ์ถ๋ ฅ ์์ค์ (๊ฐ์ฅ ์ ์ ์ถ๋ ฅ์์ ๊ฐ์ฅ ๋ง์ ์ถ๋ ฅ ์์ผ๋ก) ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ํด๋น ์์ค์ ๋์ํ๋ ์ ์ ๊ฐ์ ๊ดํธ ์์ ํ์๋ฉ๋๋ค.
transformers.logging.CRITICAL๋๋transformers.logging.FATAL(์ ์ซ๊ฐ, 50): ๊ฐ์ฅ ์ฌ๊ฐํ ์ค๋ฅ๋ง ๋ณด๊ณ ํฉ๋๋ค.transformers.logging.ERROR(์ ์ซ๊ฐ, 40): ์ค๋ฅ๋ง ๋ณด๊ณ ํฉ๋๋ค.transformers.logging.WARNING๋๋transformers.logging.WARN(์ ์ซ๊ฐ, 30): ์ค๋ฅ์ ๊ฒฝ๊ณ ๋ง ๋ณด๊ณ ํฉ๋๋ค. ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉ๋๋ ์์ค์ ๋๋ค.transformers.logging.INFO(์ ์ซ๊ฐ, 20): ์ค๋ฅ, ๊ฒฝ๊ณ , ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ธ ์ ๋ณด๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.transformers.logging.DEBUG(์ ์ซ๊ฐ, 10): ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ธ ๋ค์ด๋ก๋ ์ค์๋ tqdm ์งํ ํ์์ค์ด ํ์๋ฉ๋๋ค. [logging.disable_progress_bar]์ [logging.enable_progress_bar]๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋์์ ์จ๊ธฐ๊ฑฐ๋ ๋ค์ ํ์ํ ์ ์์ต๋๋ค.
logging vs warningstransformers.utils.logging.captureWarnings
Python์๋ ์ข
์ข
ํจ๊ป ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ๋ก๊น
์์คํ
์ด ์์ต๋๋ค. ์์์ ์ค๋ช
ํ logging๊ณผ warnings์
๋๋ค. warnings๋ ํน์ ๋ฒ์ฃผ๋ก ๊ฒฝ๊ณ ๋ฅผ ์ธ๋ถํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ฏธ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ธฐ๋ฅ์ด๋ ๊ฒฝ๋ก์ ๋ํด FutureWarning์ด ์ฌ์ฉ๋๊ณ , ๊ณง ์ฌ์ฉ ์ค๋จ๋ ๊ธฐ๋ฅ์ ์๋ฆฌ๊ธฐ ์ํด DeprecationWarning์ด ์ฌ์ฉ๋ฉ๋๋ค.
ํธ๋์คํฌ๋จธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ๋ ์์คํ
๋ชจ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. logging์ captureWarnings ๋ฉ์๋๋ฅผ ํ์ฉํ๊ณ ์ด๋ฅผ ์กฐ์ ํ์ฌ ์์์ ์ค๋ช
ํ ์ถ๋ ฅ ์์ค ์ค์ ์๋ค์ ํตํด ์ด๋ฌํ ๊ฒฝ๊ณ ๋ฉ์์ง๋ค์ ๊ด๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ ์ง์นจ์ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ข์ต๋๋ค.
warnings๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์์transformers์ ์์กดํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์๋ค์๊ฒ ์ ๋ฆฌํฉ๋๋ค.logging์ ์ผ๋ฐ์ ์ธ ํ๋ก์ ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์๋ณด๋ค๋, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ต์ข ์ฌ์ฉ์๋ค์๊ฒ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
์๋์์ captureWarnings ๋ฉ์๋์ ๋ํ ์ฐธ๊ณ ์ฌํญ์ ํ์ธํ ์ ์์ต๋๋ค.
autodoc logging.captureWarnings
๊ธฐ๋ณธ ์ค์ ์ transformers.utils.logging.set_verbosity_error
autodoc logging.set_verbosity_error
autodoc logging.set_verbosity_warning
autodoc logging.set_verbosity_info
autodoc logging.set_verbosity_debug
๊ธฐํ ํจ์ transformers.utils.logging.get_verbosity
autodoc logging.get_verbosity
autodoc logging.set_verbosity
autodoc logging.get_logger
autodoc logging.enable_default_handler
autodoc logging.disable_default_handler
autodoc logging.enable_explicit_format
autodoc logging.reset_format
autodoc logging.enable_progress_bar
autodoc logging.disable_progress_bar