python logging 모듈 사용 상세 설명

3826 단어 pythonlogging모듈
logging 로그 모듈:로 그 를 기록 하 는 모듈 입 니 다.일반적으로 사용자 가 소프트웨어 에서 의 작업 을 기록 합 니 다.
사용 방법:템 플 릿 을 직접 가 져 와 서 사용 하고 수 동 으로 수정 합 니 다.

# logging     (  )
import os
import logging.config


#              (  ,    ,     )
standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
         '[%(levelname)s][%(message)s]' #   name get_logger      
simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'
#            


# (*****)  1: log     (    )
BASE_PATH = os.path.dirname(os.path.dirname(__file__))  #       
logfile_dir = os.path.join(BASE_PATH, 'log')  #   log     
# (*****)  2: log   (    )
logfile_name = 'user.log'


#                  
if not os.path.isdir(logfile_dir):
  os.mkdir(logfile_dir)
# log      
logfile_path = os.path.join(logfile_dir, logfile_name)


# (*****)  3: log    (  ,    ,     )
LOGGING_DIC = {
  'version': 1,
  'disable_existing_loggers': False,
  'formatters': {
    'standard': {
      'format': standard_format
    },
    'simple': {
      'format': simple_format
    },
  },
  'filters': {},
  'handlers': {
    #         
    'console': {
      'level': 'DEBUG',
      'class': 'logging.StreamHandler', #      
      'formatter': 'simple'
    },
    #         ,  info      
    'default': {
      'level': 'DEBUG',
      'class': 'logging.handlers.RotatingFileHandler', #      
      'formatter': 'standard',
      'filename': logfile_path, #     
      'maxBytes': 1024 * 1024 * 5, #      5M
      'backupCount': 5,
      'encoding': 'utf-8', #        ,        log   
    },
  },
  'loggers': {
    # logging.getLogger(__name__)   logger  
    '': {
      'handlers': ['default', 'console'], #           handler   , log             
      'level': 'DEBUG',
      'propagate': True, #   (  level logger)  
    },
  },
}


# (*****)  4:      ,              "  id"  "    ",           
def get_logger(user_type):
  # 1.  log     logging      
  logging.config.dictConfig(LOGGING_DIC)
  # 2.      
  # logger = logging.getLogger('user')
  # logger = logging.getLogger('bank')
  # logger = logging.getLogger('shop')
  logger = logging.getLogger(user_type)
  return logger

#     ,    #   logger    ,         
logger = get_logger('user')  #             "  id"  "    "
#              
# logger.debug('      ,      !')
logger.info('      ,      !')  # debug info      , info  ,info                  
주의:앞의 세 가지 주의 점 은 상황 에 따라 설정 을 수정 할 수 있 습 니 다.네 번 째 주의 점 은 log 의 설정 사전 입 니 다.수정 할 필요 가 없고 주의 만 하면 됩 니 다.
실행 결과:

[INFO][2020-10-22 20:23:07,405][04 logging  .py:100]      ,      !
logging 모듈 응용 출력 예시:


이상 은 python logging 모듈 의 사용 에 대한 상세 한 내용 입 니 다.python logging 모듈 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기