- 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kun1280437633/article/details/79579500
1、日志的级别
日志一共分成5个等级,从低到高分别是:
1. DEBUG:详细的信息,通常只出现在诊断问题上
2. INFO:确认一切按预期运行
3. WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如磁盘空间低”)。这个软件还能按预期工作。
4. ERROR:更严重的问题,软件没能执行一些功能
5. CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行
这5个等级,也分别对应5种打日志的方法: debug 、info 、warning 、error 、critical。默认的是WARNING,当在WARNING或之上时才被跟踪。
2、日志输出到控制台
import logging
logging.basicConfig(level=logging.WARNING,
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s : %(message)s')
# 开始使用log功能
logging.info('这是 loggging info message')
logging.debug('这是 loggging debug message')
logging.warning('这是 loggging a warning message')
logging.error('这是 an loggging error message')
logging.critical('这是 loggging critical message')
***注意 level=logging.WARNING这个是控制日志输入最低的级别
结果显示:
2018-3-14 23:07:35,725 - log1.py[line:9] - WARNING: 这是 loggging a warning message
2018-3-14 23:07:35,725 - log1.py[line:10] - ERROR: 这是 an loggging error message
2018-3-14 23:07:35,725 - log1.py[line:11] - CRITICAL: 这是 loggging critical message
3、日志输出到文件
import logging
logging.basicConfig(level=logging.WARNING,
filename='./log.txt',
filemode='w',
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
# use logging
logging.info('这是 loggging info message')
logging.debug('这是 loggging debug message')
logging.warning('这是 loggging a warning message')
logging.error('这是 an loggging error message')
logging.critical('这是 loggging critical message')
***注意点level 这个是控制最低输入的级别,filename这个是输入文件的路径,filemode这个文件的模式
显示结果:
python@ubuntu: cat log.txt
2018-3-14 23:10:44,549 - log2.py[line:10] - WARNING: 这是 loggging a warning message
2018-3-14 23:10:44,549 - log2.py[line:11] - ERROR: 这是 an loggging error message
2018-3-14 23:10:44,549 - log2.py[line:12] - CRITICAL: 这是 loggging critical message
4、日志既输出到控制台又输出到文件
import logging
# 第一步,创建一个logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG) # Log等级总开关
# 第二步,创建一个handler,用于写入日志文件
logfile = './log.txt'
fh = logging.FileHandler(logfile, mode='a') # open的打开模式这里可以进行参考
fh.setLevel(logging.WARNING) # 输出到file的log等级的开关
# 第三步,再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG) # 输出到console的log等级的开关
# 第四步,定义handler的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 第五步,将logger添加到handler里面
logger.addHandler(fh)
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')
终端结果显示:
2018-03-14 23:14:04,218 - 04_日志3.py[line:26] - DEBUG: 这是 logger debug message
2018-03-14 23:14:04,218 - 04_日志3.py[line:27] - INFO: 这是 logger info message
2018-03-14 23:14:04,219 - 04_日志3.py[line:28] - WARNING: 这是 logger warning message
2018-03-14 23:14:04,219 - 04_日志3.py[line:29] - ERROR: 这是 logger error message
2018-03-14 23:14:04,219 - 04_日志3.py[line:30] - CRITICAL: 这是 logger critical message
文件log.txt 结果显示:
2018-03-14 23:14:04,219 - 04_日志3.py[line:28] - WARNING: 这是 logger warning message
2018-03-14 23:14:04,219 - 04_日志3.py[line:29] - ERROR: 这是 logger error message
2018-03-14 23:14:04,219 - 04_日志3.py[line:30] - CRITICAL: 这是 logger critical message