Package Python et journalisation
1. : Un package avec un fichier __init__.py dans un dossier permet de gérer plusieurs modules
La structure du package est la suivante :bake ├── __init__.py ├── api ├── __init__.py ├── policy.py └── versions.py ├── cmd ├── __init__.py └── manage.py └── db ├── __init__.py └── models.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
Tutoriel vidéo Python
"Le module de journalisation est utilisé pour enregistrer divers statuts du logiciel, les enregistrements de transactions, les enregistrements d'erreurs, les enregistrements de connexion...
1. Configuration fonctionnelle simple :
import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')
2. 🎜>
peut uniquement Les journaux d'écriture ne peuvent pas être affichés sur l'écran public 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')
filename: use Crée un FiledHandler avec le nom de fichier spécifié afin que le journal soit stocké dans le fichier spécifié. filemode : mode d'ouverture de fichier, ce paramètre est utilisé lorsque le nom de fichier est spécifié. La valeur par défaut est "a" et peut également être spécifiée comme "w".
format : Spécifiez le format d'affichage du journal utilisé par le gestionnaire.
datefmt : Spécifiez le format de la date et de l'heure.
level : définir le niveau de journalisation.
stream : créer un StreamHandler avec le flux spécifié. Vous pouvez spécifier la sortie dans
sys.stderr, sys.stdout ou file (f=open('test.log','w')), la valeur par défaut est sys.stderr. Si les paramètres de nom de fichier et de flux sont répertoriés, le paramètre de flux sera ignoré.
Chaîne de format pouvant être utilisée dans le paramètre de format :%(name)s Nom de l'enregistreur %(levelno)s forme numérique Log level
%(levelname)s Niveau de journalisation sous forme de texte
%(pathname)s Le chemin complet du module qui appelle la fonction de sortie de journal, il peut n'y avoir aucun
% (filename)s Le nom de fichier du module qui appelle la fonction de sortie de journal
%(module)s Le nom du module qui appelle la fonction de sortie de journal
%(funcName)s Le nom de la fonction qui appelle la fonction de sortie de journal
%(lineno)d La ligne de code où se trouve l'instruction qui appelle la fonction de sortie de journal
%(created)f L'heure actuelle, représentée par un nombre à virgule flottante standard UNIX représentant l'heure
%(relativeCreated)d Le nombre de millisecondes depuis la création du Logger lors de la sortie des informations du journal
%(asctime)s L'heure actuelle sous la forme d'une chaîne. Le format par défaut est "2003-07-08 16:49:45,896". Ce qui suit la virgule correspond aux millisecondes
%(thread)d ID de thread. Il se peut qu'il n'y ait aucun nom de fil de discussion
%(threadName)s. Il se peut qu’il n’y ait pas d’ID de processus
%(process)d. Il se peut qu'aucun message ne soit émis par
%(message)s utilisateurs
Configuration de l'objet 3.logger (version moyenne)import logging logger = logging.getLogger() # 创建一个logger fh = logging.FileHandler('test.log',mode="a",encoding='utf-8') # 文件 ch = logging.StreamHandler() # 屏幕 formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s - [line:%(lineno)d] - %(levelname)s - %(message)s') # 将屏幕和文件都是用以上格式 logger.setLevel(logging.DEBUG) # 设置记录级别 fh.setFormatter(formatter) # 使用自定义的格式化内容 ch.setFormatter(formatter) logger.addHandler(fh) #logger对象可以添加多个fh和ch对象 logger.addHandler(ch) logger.debug('logger debug message') logger.info('logger info message') logger.warning('logger warning message') logger.error('logger error message') logger.critical('logger critical message')
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!