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 비디오 튜토리얼"
#🎜🎜 #로깅 모듈은 소프트웨어의 다양한 상태, 거래 기록, 오류 기록, 로그인 기록 등을 기록하는 데 사용됩니다...# 🎜🎜#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 > DEBUG2입니다. , 로그 모드, 입력 위치(낮은 구성 버전)
로그 쓰기만 가능하고 공개 화면에는 출력할 수 없습니다
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!