Python日志记录
官方文档:https://docs.python.org/2/library/logging.html
logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有
filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format:指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level:设置rootlogger; 默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET)
stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。
只打印到控制台
# coding:utf-8
import logging
import sys
# 日志格式化方式
#LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
LOG_FORMAT = "%(asctime)s\tFile \"%(filename)s\",LINE %(lineno)-4d : %(levelname)-8s %(message)s"
# 日期格式化方式
DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
def initLogging(logFilename):
#logging.basicConfig(filename=logFilename, level=logging.DEBUG, format=LOG_FORMAT)
#formatter = logging.Formatter(LOG_FORMAT);
#handler=logging.FileHandler(logFilename)
#handler.setLevel(logging.DEBUG)
#handler.setFormatter(formatter)
#logging.getLogger('').addHandler(handler);
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT)
#console = logging.StreamHandler();
#console.setLevel(logging.INFO);
#console.setFormatter(formatter);
#logging.getLogger('').addHandler(console);
initLogging("mylog.txt")
logging.info("Hello world")
只打印到文件
# coding:utf-8
import logging
import sys
# 日志格式化方式
#LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
LOG_FORMAT = "%(asctime)s\tFile \"%(filename)s\",LINE %(lineno)-4d : %(levelname)-8s %(message)s"
# 日期格式化方式
DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
def initLogging(logFilename):
logging.basicConfig(filename=logFilename, level=logging.DEBUG, format=LOG_FORMAT)
#formatter = logging.Formatter(LOG_FORMAT);
#handler=logging.FileHandler(logFilename)
#handler.setLevel(logging.DEBUG)
#handler.setFormatter(formatter)
#logging.getLogger('').addHandler(handler);
#logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT)
#console = logging.StreamHandler();
#console.setLevel(logging.INFO);
#console.setFormatter(formatter);
#logging.getLogger('').addHandler(console);
initLogging("mylog.txt")
logging.info("Hello world")
同时打印到控制台和文件
# coding:utf-8
import logging
import sys
# 日志格式化方式
#LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
LOG_FORMAT = "%(asctime)s\tFile \"%(filename)s\",LINE %(lineno)-4d : %(levelname)-8s %(message)s"
# 日期格式化方式
DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
def initLogging(logFilename):
logging.basicConfig(filename=logFilename, level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT)
formatter = logging.Formatter(LOG_FORMAT);
#handler=logging.FileHandler(logFilename)
#handler.setLevel(logging.DEBUG)
#handler.setFormatter(formatter)
#logging.getLogger('').addHandler(handler);
#logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT)
console = logging.StreamHandler();
console.setLevel(logging.INFO);
console.setFormatter(formatter);
logging.getLogger('').addHandler(console);
initLogging("mylog.txt")
logging.info("Hello world")
https://www.cnblogs.com/heenhui2016/p/11424154.html
https://blog.csdn.net/energysober/article/details/53263295
Python日志记录的更多相关文章
- Python 日志记录与程序流追踪(基础篇)
日志记录(Logging) More than print: 每次用 terminal debug 时都要手动在各种可能出现 bug 的地方 print 相关信息来确认 bug 的位置: 每次完成 d ...
- Python日志记录(Logging)
日志记录跟程序的测试相关,并且在大幅度更改程序内核时很有用,它可以帮助我们找到问题和错误的所在.日志记录基本上就是收集与程序运行有关的数据,这样可以在随后进行检查或者累计数据. 1.简单示例 在Pyt ...
- python日志记录-logging模块
1.logging模块日志级别 使用logging模块简单示例: >>>import logging >>>logging.debug("this's a ...
- [蟒蛇菜谱]Python日志记录最佳实践
# -*- coding: utf8 -*- import logging # 创建一个logger logger = logging.getLogger('mylogger') logger.set ...
- Python日志记录(logging)
import logging logfile = 'e:\\a.txt' # logging.basicConfig(filename=logfile,level=logging.INFO) # lo ...
- python中利用logging包进行日志记录时的logging.level设置选择
之前在用python自带的logging包进行日志输出的时候发现有些logging语句没有输出,感到比较奇怪就去查了一下logging文档.然后发现其在设置和引用时的logging level会影响最 ...
- Python开发之日志记录模块:logging
1 引言 最近在开发一个应用软件,为方便调试和后期维护,在代码中添加了日志,用的是Python内置的logging模块,看了许多博主的博文,颇有所得.不得不说,有许多博主大牛总结得确实很好.似乎我再写 ...
- python添加fluent日志记录
istio默认会进行日志的记录,但是仅仅记录到服务.以及服务之间调用的信息,不记录业务日志. 如: 所以需要添加业务日志记录. 1.python引入package fluentmsgpack 2.代码 ...
- Python的日志记录-logging模块的使用
一.日志 1.1什么是日志 日志是跟踪软件运行时所发生的事件的一种方法,软件开发者在代码中调用日志函数,表明发生了特定的事件,事件由描述性消息描述,同时还包含事件的重要性,重要性也称为级别或严重性. ...
随机推荐
- Hibernate框架(一)总结介绍
作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷.利用Hibernate框架我们就可以不再编写重复的 ...
- Linux安装telnet(转)
一.安装telnet 1.检测telnet-server的rpm包是否安装 [root@localhost ~]# rpm -qa telnet-server 若无输入内容,则表示没有安装.出于安 ...
- C语言:#error命令,阻止程序编译
#error 指令用于在编译期间产生错误信息,并阻止程序的编译,其形式如下: #error error_message 例如,我们的程序针对 Linux 编写,不保证兼容 Windows,那么可以这样 ...
- SQL2008 合并多个结构相同的表的所有数据到新的表
select * into tikua from (select * from tiku20210303 union all select * from tiku) a
- MapReduce处理简单数据
首先要说明的是,关于老师给的实验要求,我在网上看到了原文,原文地址:https://blog.csdn.net/qq_41035588/article/details/90514824,有兴趣的同学可 ...
- 认识vue-cli脚手架
ps:脚手架系列主要记录我自己(一名前端小白)对脚手架学习的一个过程,如有不对请帮忙指点一二! [抱拳] 作为一名前端开发工程师,平时开发项目大多都离不开一个重要的工具,那就是脚手架.下面让我们来了解 ...
- 两万字Vue.js基础学习笔记
Vue.js学习笔记 目录 Vue.js学习笔记 ES6语法 1.不一样的变量声明:const和let 2.模板字符串 3.箭头函数(Arrow Functions) 4. 函数的参数默认值 5.Sp ...
- sql-3-DML_DQL
DML-操作数据 1.insert语句 --增加一行数据 insert into 表名([字段1,字段2,字段3,...])values('值1','值2','值3',...); insert int ...
- 为了让她学画画——熬夜用canvas实现了一个画板
前言 大家好,我是Fly, canvas真是个强大的东西,每天沉迷这个无法自拔, 可以做游戏,可以对图片处理,后面会给大家分享一篇,canvas实现两张图片找不同的功能, 听着是不是挺有意思的, 有点 ...
- Dijkstra和堆优化
Dijkstra算法 由于我之前一直记的迪杰斯特拉的翻译导致我把dijkstra写成了dijstra--所以下文#define dijstra dijkstra 我以后叫她迪杰克斯歘! Dijskra ...