python 通过logging写入日志到文件和控制台的实例


Posted in Python onApril 28, 2018

如下所示:

import logging 
 
# 创建一个logger 
logger = logging.getLogger('mylogger') 
logger.setLevel(logging.DEBUG) 
 
# 创建一个handler,用于写入日志文件 
fh = logging.FileHandler('test.log') 
fh.setLevel(logging.DEBUG) 
 
# 再创建一个handler,用于输出到控制台 
ch = logging.StreamHandler() 
ch.setLevel(logging.DEBUG) 
 
# 定义handler的输出格式 
formatter = logging.Formatter('[%(asctime)s][%(thread)d][%(filename)s][line: %(lineno)d][%(levelname)s] ## %(message)s')
fh.setFormatter(formatter) 
ch.setFormatter(formatter) 
 
# 给logger添加handler 
logger.addHandler(fh) 
logger.addHandler(ch) 
 
# 记录一条日志 
logger.info('foorbar')

关于formatter的配置,采用的是%(<dict key>)s的形式,就是字典的关键字替换。提供的关键字包括:

Format Description
%(name)s Name of the logger (logging channel).
%(levelno)s Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL).
%(levelname)s Text logging level for the message ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL').
%(pathname)s Full pathname of the source file where the logging call was issued (if available).
%(filename)s Filename portion of pathname.
%(module)s Module (name portion of filename).
%(funcName)s Name of function containing the logging call.
%(lineno)d Source line number where the logging call was issued (if available).
%(created)f Time when the LogRecord was created (as returned by time.time()).
%(relativeCreated)d Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded.
%(asctime)s Human-readable time when the LogRecord was created. By default this is of the form “2003-07-08 16:49:45,896” (the numbers after the comma are millisecond portion of the time).
%(msecs)d Millisecond portion of the time when the LogRecord was created.
%(thread)d Thread ID (if available).
%(threadName)s Thread name (if available).
%(process)d Process ID (if available).
%(message)s The logged message, computed as msg % args.

以上这篇python 通过logging写入日志到文件和控制台的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现随机密码字典生成器示例
Apr 09 Python
Python单链表的简单实现方法
Sep 23 Python
python使用BeautifulSoup分析网页信息的方法
Apr 04 Python
python实现根据ip地址反向查找主机名称的方法
Apr 29 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
python中zip和unzip数据的方法
May 27 Python
python中异常报错处理方法汇总
Nov 20 Python
DataFrame中去除指定列为空的行方法
Apr 08 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
python中的&amp;&amp;及||的实现示例
Aug 07 Python
使用Python进行防病毒免杀解析
Dec 13 Python
python装饰器使用实例详解
Dec 14 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 #Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 #Python
详谈python在windows中的文件路径问题
Apr 28 #Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 #Python
对python中的logger模块全面讲解
Apr 28 #Python
详解PyTorch批训练及优化器比较
Apr 28 #Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 #Python
You might like
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
php广告加载类用法实例
2014/09/23 PHP
php生成图片验证码的方法
2016/04/15 PHP
js兼容的placeholder属性详解
2013/08/18 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
JS验证不重复验证码
2017/02/10 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
python直接访问私有属性的简单方法
2016/07/25 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
用python写PDF转换器的实现
2020/10/29 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
转让协议书
2015/01/27 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
在人间读书笔记
2015/06/30 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android