>백엔드 개발 >파이썬 튜토리얼 >Python 패키지 및 로깅 소개

Python 패키지 및 로깅 소개

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼앞으로
2019-08-08 17:55:182292검색

Python 패키지 및 로깅 소개

python 패키지 및 로깅 로그

一, package

Package: 폴더 아래에 __init__.py 파일이 있는 패키지는 여러 모듈을 관리하는 데 사용됩니다.

패키지의 구조는 다음과 같습니다. # 🎜🎜#

bake            
    ├── __init__.py       
    ├── api               
        ├── __init__.py
        ├── policy.py
        └── versions.py
  ├── cmd             
    ├── __init__.py
    └── manage.py
  └── db                
      ├── __init__.py
      └── models.py

동일한 베이킹 수준에서 test.py를 만들고 정책을 가져옵니다.

import bake.api.policy
bake.api.policy.get()
#导入的名字太长了,可以起别名
import bake.api.policy as p
p.get()
#from 导入在__init__.py修改
from . import policy
#我们需要在policy文件中向sys.path添加了当前的路径
import os
import sys
sys.path.insert(os.path.dirname(__file__))
#print(__file__)查看一下
#使用__all__,在__init__.py中
__all__ = ["policy"]
#或
from . import policy

요약:

import package.package. package#🎜 🎜#

from package.package.package 가져오기 모듈

경로:

절대: 외부 레이어에서 가져오기

상대: 현재 시작(.)에서 가져오기 또는 상위에서 가져오기(..)

상대 경로를 사용할 때 패키지의 가장 바깥쪽 수준에 있어야 하며 동일한 수준에 있어야 합니다

# 🎜🎜#from 패키지 가져오기 *# 🎜🎜#

__init__.py에서 작업을 수행해야 함

python2: 가져오기 폴더(__init__.py 없음)는 오류를 보고합니다

python3: 가져오기 폴더(__init__.py 없음) 오류가 보고되지 않습니다.

관련 권장 사항: "

Python 비디오 튜토리얼

"

#🎜🎜 #

2. 로깅 모듈

로깅 모듈은 소프트웨어의 다양한 상태, 거래 기록, 오류 기록, 로그인 기록 등을 기록하는 데 사용됩니다...

# 🎜🎜#1. 기능적 단순성 구성:

import logging
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

기본적으로 Python의 로깅 모듈은 로그를 표준 출력으로 인쇄하고 WARNING 수준보다 크거나 같은 로그만 표시합니다. 기본 수준이 WARNING#🎜🎜 #

로그 수준: CRITICAL > ERROR > INFO > DEBUG

2입니다. , 로그 모드, 입력 위치(낮은 구성 버전)

로그 쓰기만 가능하고 공개 화면에는 출력할 수 없습니다

import logging
logging.basicConfig(level = logging.DEBUG,
                    format = '%(astime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt = '%Y-%m-%d %H:%M:%S',
                    filename = 'test.log',
                    filemode = 'a')
dic = {"key":123}
logging.debug(dic)
num = 100
logging.info(f"用户余额:{num - 50}")
try:
    num = int(input("请输入数字:"))
except Exception as e:
    logging.warning("e")
logging.error('error message')
logging.critical('critical message')

basicConfig() 함수는 특정 매개변수를 통해 로깅 모듈의 기본 동작을 변경할 수 있습니다. 사용 가능한 매개변수는 다음과 같습니다:

filename: 지정된 파일 이름으로 FiledHandler를 생성하여 로그가 지정된 파일.

filemode: 파일 열기 모드, 이 매개변수는 파일 이름을 지정할 때 사용됩니다. 기본값은 "a"이며 "w"로 지정할 수도 있습니다.

format: 핸들러에서 사용하는 로그 표시 형식을 지정합니다. datefmt: 날짜 및 시간 형식을 지정합니다.

level: 로깅 수준 설정

stream: 지정된 스트림을 사용하여 StreamHandler를 만듭니다. 출력을

sys.stderr, sys.stdout 또는 파일(f=open('test.log','w'))로 지정할 수 있으며 기본값은 sys.stderr입니다. 파일 이름과 스트림 매개변수가 모두 나열되면 스트림 매개변수는 무시됩니다.

형식 매개변수에 사용할 수 있는 형식 지정 문자열:

%(name)s 로거 이름

#🎜🎜 # %(levelno)s 숫자 형식의 로그 수준

%(levelname)s 텍스트 형식의 로그 수준

%(pathname)s 로그 출력 함수를 호출하는 전체 모듈 경로 이름, 없을 수 있음

%(filename)s 로그 출력 함수를 호출하는 모듈의 파일 이름

%(module)s 로그를 호출하는 모듈 이름 출력 함수#🎜🎜 #

%(funcName)s 로그 출력 함수를 호출하는 함수 이름

%(lineno)d 로그 출력 함수를 호출하는 문이 있는 코드 줄 is located

%(created)f 현재 시간으로, 시간을 나타내는 UNIX 표준 부동 소수점 숫자로 표현됩니다.

%(relativeCreated)d 로그 정보를 출력할 때, 로거가 생성된 이후 밀리초

%(asctime)s 문자열로 표시된 현재 시간입니다. 기본 형식은 "2003-07-08 16:49:45,896"입니다. 쉼표 뒤에 오는 것은 밀리초

%(thread)d 스레드 ID입니다.

%(threadName)s 스레드 이름이 없을 수 있습니다.

%(process)d 프로세스 ID가 없을 수 있습니다. 사용자가

%(message)s 메시지를 출력하지 않을 수 있습니다

3.로거 개체 구성(중간 버전)

으아악

위 내용은 Python 패키지 및 로깅 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제