Python 实现日志同时输出到屏幕和文件
作者:ForeverStrong 时间:2021-06-25 23:04:29
1. 日志输出到屏幕
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import logging
logging.basicConfig(level=logging.NOTSET, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logging.debug('This is a debug message.')
logging.info('This is an info message.')
logging.warning('This is a warning message.')
logging.error('This is an error message.')
logging.critical('This is a critical message.')
默认的 level 是 logging.WARNING,低于这个级别的就不输出了。如果需要显示低于 logging.WARNING 级别的内容,可以引入 logging.NOTSET 级别来显示。
DEBUG - 打印全部的日志。详细的信息,通常只出现在诊断问题上。
INFO - 打印 INFO、WARNING、ERROR、CRITICAL 级别的日志。确认一切按预期运行。
WARNING - 打印 WARNING、ERROR、CRITICAL 级别的日志。表明一些问题在不久的将来,这个软件还能按预期工作。
ERROR - 打印 ERROR、CRITICAL 级别的日志。更严重的问题,软件没能执行一些功能。
CRITICAL : 打印 CRITICAL 级别。一个严重的错误,表明程序本身可能无法继续运行。
/usr/bin/python2.7 /home/strong/git_workspace/MonoGRNet/test.py
2019-06-26 16:00:45,990 - root - DEBUG - This is a debug message.
2019-06-26 16:00:45,990 - root - INFO - This is an info message.
2019-06-26 16:00:45,990 - root - WARNING - This is a warning message.
2019-06-26 16:00:45,990 - root - ERROR - This is an error message.
2019-06-26 16:00:45,990 - root - CRITICAL - This is a critical message.
Process finished with exit code 0
2. 日志输出到文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import logging
import os.path
import time
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
time_line = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
print(os.getcwd())
log_path = os.path.dirname(os.getcwd()) + '/'
logfile = log_path + time_line + '.log'
handler = logging.FileHandler(logfile, mode='w')
handler.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.debug('This is a debug message.')
logger.info('This is an info message.')
logger.warning('This is a warning message.')
logger.error('This is an error message.')
logger.critical('This is a critical message.')
/usr/bin/python2.7 /home/strong/git_workspace/MonoGRNet/test.py
/home/strong/git_workspace/MonoGRNet
Process finished with exit code 0
201906261627.log
2019-06-26 16:27:26,899 - test.py[line:30] - INFO: This is an info message.
2019-06-26 16:27:26,899 - test.py[line:31] - WARNING: This is a warning message.
2019-06-26 16:27:26,899 - test.py[line:32] - ERROR: This is an error message.
2019-06-26 16:27:26,899 - test.py[line:33] - CRITICAL: This is a critical message.
3. 日志同时输出到屏幕和文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import logging
import os.path
import time
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.DEBUG)
time_line = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
print(os.getcwd())
log_path = os.path.dirname(os.getcwd()) + '/'
logfile = log_path + time_line + '.log'
handler = logging.FileHandler(logfile, mode='w')
handler.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
handler.setFormatter(formatter)
console = logging.StreamHandler()
console.setLevel(logging.WARNING)
logger.addHandler(handler)
logger.addHandler(console)
logger.debug('This is a debug message.')
logger.info('This is an info message.')
logger.warning('This is a warning message.')
logger.error('This is an error message.')
logger.critical('This is a critical message.')
/usr/bin/python2.7 /home/strong/git_workspace/MonoGRNet/test.py
/home/strong/git_workspace/MonoGRNet
This is a warning message.
This is an error message.
This is a critical message.
Process finished with exit code 0
201906261636.log
2019-06-26 16:36:38,385 - test.py[line:34] - INFO: This is an info message.
2019-06-26 16:36:38,385 - test.py[line:35] - WARNING: This is a warning message.
2019-06-26 16:36:38,385 - test.py[line:36] - ERROR: This is an error message.
2019-06-26 16:36:38,385 - test.py[line:37] - CRITICAL: This is a critical message.
来源:https://blog.csdn.net/chengyq116/article/details/93765575
标签:Python,日志输出,屏幕,文件
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python mutiprocessing多线程池pool操作示例
2022-02-11 14:19:46
![](https://img.aspxhome.com/file/2023/8/90308_0s.png)
Tensorflow中TFRecord生成与读取的实现
2023-05-02 07:21:20
![](https://img.aspxhome.com/file/2023/0/86630_0s.jpg)
SQL Server查询速度慢原因及优化方法
2008-12-03 15:19:00
利用python实现冒泡排序算法实例代码
2021-06-29 17:00:14
![](https://img.aspxhome.com/file/2023/2/90522_0s.png)
SQL 中having 和where的区别分析
2023-07-09 03:53:28
当标题不能显示完整的时候
2007-11-20 13:23:00
用户体验如何提升阿里巴巴的商业价值
2009-07-23 20:29:00
![](https://img.aspxhome.com/file/UploadPic/20097/23/1-12s.gif)
PHP const定义常量及global定义全局常量实例解析
2023-11-17 07:24:57
中英文双语导航菜单
2007-05-11 17:04:00
![](https://img.aspxhome.com/file/UploadPic/20075/20075111747385s.gif)
基于python2.7实现图形密码生成器的实例代码
2021-01-21 15:20:50
Django中的用户身份验证示例详解
2023-10-08 17:06:08
asp 获取url函数小结
2011-03-17 10:38:00
实例讲解MySQL数据库中文问题的解决方法
2008-12-31 15:15:00
用ASP实现分级权限控制
2008-10-09 13:02:00
Python上下文管理器Content Manager
2021-08-22 23:47:11
深入分析PHP引用(&)
2023-11-23 00:42:35
![](https://img.aspxhome.com/file/2023/1/55771_0s.jpg)
python实现任意位置文件分割的实例
2021-01-17 18:18:22
牛刀小试YUI compressor(YUI安装方法)
2009-02-12 16:18:00
![](https://img.aspxhome.com/file/UploadPic/20092/12/yuiyasuo-71s.png)
关于go-zero单体服务使用泛型简化注册Handler路由的问题
2023-08-30 20:19:08
![](https://img.aspxhome.com/file/2023/7/101047_0s.png)
python抓取网站的图片并下载到本地的方法
2022-05-19 23:45:08