python中庫和模塊的區別,logging模塊

 2023-10-18 阅读 26 评论 0

摘要:標準三流 標準輸出流sys.stdout.write('123\n')sys.stdout.write('呵呵\n')print('嘻嘻', end='')print('嘿嘿', end='')print() 標準錯誤流sys.stderr.write('11111111111111111111111111111111111111111111111

標準三流

 標準輸出流
sys.stdout.write('123\n')
sys.stdout.write('呵呵\n')
print('嘻嘻', end='')
print('嘿嘿', end='')
print()

標準錯誤流
sys.stderr.write('111111111111111111111111111111111111111111111111111\n')
sys.stderr.write('222222222222222222222222222222222222222222222222222\n')
sys.stderr.write('333333333333333333333333333333333333333333333333333\n')

標準輸入流
print(sys.stdin)

res = sys.stdin.read(3)
print(res)
res = input()
print(res)
res = sys.stdin.readline()
print(res)

logging模塊

操作日志的模塊,在正常的項目中,項目運行的一些打印信息,采用looging打印到文件中,這個過程就稱之為 記錄日志

logging配置:格式化輸出 1)輸出的方式  2)輸出的格式 3)輸出的位置
h1 = logging.StreamHandler()
h2 = logging.FileHandler('d.log')
logging.basicConfig(
# filename='my.log',
# filemode='w',
# stream=sys.stderr, # 往控制臺打印采用具體的輸出流
format='%(asctime)s [%(levelname)s]- %(name)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
level=logging.DEBUG, # 10, 代表DEBUG及DEBUG級別以上都能輸出
handlers=[h1, h2]
)

logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")

loggin四大成員

 1.新建打印者
logger = logging.getLogger("Owen")# 2.創建句柄:輸出的位置
stream_handler = logging.StreamHandler()
a_file_handler = logging.FileHandler('a.log')
b_file_handler = logging.FileHandler('b.log')# 3.打印者綁定句柄
logger.addHandler(stream_handler)
logger.addHandler(a_file_handler)
logger.addHandler(b_file_handler)# 4.設置格式
fmt1 = logging.Formatter('%(asctime)s - %(msg)s')
fmt2 = logging.Formatter('%(asctime)s [%(name)s] - %(msg)s')# 5.為句柄綁定輸出格式
stream_handler.setFormatter(fmt1)
a_file_handler.setFormatter(fmt1)
b_file_handler.setFormatter(fmt2)logger.critical('msg')

多輸出者

python中庫和模塊的區別??

?

?

import logging
# 1.創建logger
log1 = logging.getLogger('Owen')
log2 = logging.getLogger('Zero')
r_log = logging# 2.logger設置級別
log1.setLevel(logging.DEBUG)# 3.設置句柄
h1 = logging.StreamHandler()# 4.設置句柄級別:
# 1)系統句柄默認級別warning,
# 2)自定義的句柄級別默認同logger,也可以在logger基礎上在加以限制
h1.setLevel(logging.DEBUG)# 5.logger添加句柄
log1.addHandler(h1)# log1可以打印DEBUG以上的信息,但往不同位置打印,采用不同句柄的二次級別限制
h2 = logging.FileHandler('c.log')
h2.setLevel(logging.WARNING)
log1.addHandler(h2)log1.debug('debug')
log1.info('info')
log1.warning('warning')
log1.error('error')
log1.critical('critical')

?

也可以同時存在多輸出者

import logging
# 1.創建logger
log1 = logging.getLogger('one')
log2 = logging.getLogger('Zero')
r_log = logging

# 2.logger設置級別
log1.setLevel(logging.DEBUG)

# 3.設置句柄
h1 = logging.StreamHandler()

# 4.設置句柄級別:
# 1)系統句柄默認級別warning,
# 2)自定義的句柄級別默認同logger,也可以在logger基礎上在加以限制
h1.setLevel(logging.DEBUG)

# log1可以打印DEBUG以上的信息,但往不同位置打印,采用不同句柄的二次級別限制
h2 = logging.FileHandler('c.log')
h2.setLevel(logging.WARNING)
log1.addHandler(h2)

配置文件的使用

LOGGING_DIC = {
??? 'version': 1,
??? 'disable_existing_loggers': False,
??? 'formatters': {
??????? 'o_fmt1': {
??????????? 'format': '%(name)s:%(asctime)s - %(message)s'
??????? },
??????? 'o_fmt2': {
??????????? 'format': '%(name)s:%(asctime)s [%(levelname)s] - %(message)s'
??????? }
??? },
??? 'filters': {},
??? 'handlers': {
??????? 'o_cmd': {
??????????? 'level': 'DEBUG',
??????????? 'class': 'logging.StreamHandler',
??????????? 'formatter': 'o_fmt1'
??????? },
??????? 'o_file': {
??????????? 'level': 'WARNING',
??????????? 'class': 'logging.handlers.RotatingFileHandler',
??????????? 'formatter': 'o_fmt2',
??????????? 'filename': ‘’,? # 日志文件
??????????? 'maxBytes': 1024*1024*5,? # 日志大小 5M
??????????? 'backupCount': 5, #日志文件最大個數
??????????? 'encoding': 'utf-8',? # 日志文件的編碼
??????? }
??? },
??? 'loggers': {
??????? 'o_one': {
??????????? 'level': 'DEBUG',
??????????? 'handlers': ['o_cmd', 'o_file']
??????? },
??????? 'o_zero': {
??????????? 'level': 'DEBUG',
??????????? 'handlers': ['o_file']
??????? }
??? }
}
# 2.加載配置
import logging.config
logging.config.dictConfig(LOGGING_DIC)

# 3.使用
log = logging.getLogger('o_owen')
log.warning('123')










轉載于:https://www.cnblogs.com/duGD/p/10871809.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/149307.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息