python日志添加功能,主要记录程序运行中的日志,统一收集并分析

转自:https://www.cnblogs.com/jsondai/p/9663633.html

一、日志的级别

debug(调试信息) info() warning(警告信息)error(错误信息) critical(致命信息)  从左往右越来越严重
日志等级(level) 描述
DEBUG 最详细的日志信息,典型应用场景是 问题诊断
INFO 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR 由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息
注意,系统只显示warning(警告信息)级别以上的日志,例如我们输入一下代码:
import logging
logging.debug(‘这是个debug级别的信息‘)#输出时被过滤掉了
logging.info(‘这是个info级别的信息‘)#输出时被过滤掉了
logging.warning(‘这是个warning级别的信息‘)
logging.error(‘这是个error级别的信息‘)
logging.critical(‘这是个critical级别的信息‘)

控制台输出

代码写的是5行数据,实际在控制台只有3行,那是因为系统默认输出 warning(警告)及以上的日志。

如果需要全部展示,需要调用

logging.basicConfig(level=logging.DEBUG) #basicConfig基础配置 可以输入关键字参数,level是等级的意思 logging.DEBUG级别必须大写  如果是调用函数就需要小写

在level那里展示指定级别。 加上 logging.basicConfig 之后运行,结果如下,能全部展示出来了

二、日志格式化输出

将日志输出到控制台或者文件中

fp = logging.FileHandler(‘a.txt‘, encoding=‘utf-8‘)   #将日志记录到文件中
fs = logging.StreamHandler()     #将日志输出到控制台

放在handler中进行调用

import logging
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"    # 日志格式化输出
DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p"                        # 日期格式
fp = logging.FileHandler(‘a.txt‘, encoding=‘utf-8‘)
fs = logging.StreamHandler()
logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT, handlers=[fp, fs])    # 调用

logging.debug("This is a debug log.哈哈")
logging.info("This is a info log.")
logging.warning("This is a warning log.")
logging.error("This is a error log.")
logging.critical("This is a critical log.")

控制台和文件中就都能展示日志了

原文地址:https://www.cnblogs.com/fyly/p/11074847.html

时间: 2024-08-02 02:54:49

python日志添加功能,主要记录程序运行中的日志,统一收集并分析的相关文章

R语言记录程序运行的时间

f <- function(start_time) { start_time <- as.POSIXct(start_time) dt <- difftime(Sys.time(), start_time, units="secs") # Since you only want the H:M:S, we can ignore the date... # but you have to be careful about time-zone issues format(

栈帧 --- 程序运行中数据的更改问题

一.栈 栈作为一种特殊的数据结构而存在("后入先出"存储),是一种只能在一端进行插入和删除操作的特殊线性表. 大多数CPU上的程序实现使用栈来支持函数调用操作.栈用来传递函数参数.存储返回信息.临时保存寄存器原有值以用于回复以及存储局部数据. 栈有很多自己的特性,它具有记忆功能,对栈的插入与删除操作中,不需要改变栈底指针:而且栈是从高地址向低地址延伸的.每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息.因此栈作用就是用来保持栈帧的活动记录(即函数调用).

程序运行中(BSS段、数据段、代码段、堆栈)

程序运行中(BSS段.数据段.代码段.堆栈) BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据段(data segment)通常是指用来存放程序中 已初始化 的 全局变量 的一块内存区域.数据段属于静态内存分配. 代码段: 代码段(code segment/text segment)通常是指用来存放 程序执行代码 的一块内存区域.这部分区域的大小

C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)

BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据段(data segment)通常是指用来存放程序中 已初始化 的 全局变量 的一块内存区域.数据段属于静态内存分配. 代码段: 代码段(code segment/text segment)通常是指用来存放 程序执行代码 的一块内存区域.这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于 

怎么用cmd 运行python 快捷键(WIN+R)在“运行”中输入“cmd ”然后在命令提示符中输入set PATH=%PATH%;C:\Python25,接下来,再在当前的 cmd下输入python,即可运行。———没嘛用 直接文件夹shift右键

来源http://zhidao.baidu.com/question/1510889184474081700.html?qq-pf-to=pcqq.c2c 在windows cmd下运行python,需要设置环境变量,不设环境变量是不能在cmd下运行python的, 现在假设python安装在C:\Python25目录下,设置环境变量方法如下:  方法一.我的电脑->属性->高级->环境变量->系统变量 ,在系统变量里找到PATH,双击PATH,在结尾加上 ";C:\Py

java程序运行中如果出现异常未被处理,将会被抛到java虚拟机进行处理,程序中断运行后被挂起,在页面输出错误信息(不会输出到console)

下面的代码中,因为我是使用 for (Iterator<Element> i = el.elements().iterator(); i.hasNext(); ) 迭代器遍历根节点的所有子节点的flag,但是因为linux基线有 <initcmd> 节点,导致flag为空, 在传入service中进行数据库操作时抛出异常未被处理导致程序被挂起,错误信息不输出到console,直接打印到了页面. 解决方法就是try catch处理掉异常并返回false即可 public boolea

返回程序运行中当前行

"""This provides a lineno() function to make it easy to grab the line number that we're on. """ import inspect def lineno(): """Returns the current line number in our program.""" return inspect.c

C# 使用Trace记录程序日志

在程序开发中,我们通常需要记录程序运行的状态,在程序部署后,发生的异常可以记录在日志中,便于发现程序潜在的问题.在.NET平台,有很多优秀的日志类库,例如Log4Net.如果程序很小,我们可以自己通过C#的Trace类来实现一个基本的日志记录功能.下面直接看代码: public class TraceHelper { private static TraceHelper _traceHelper; private TraceHelper() { } public static TraceHelp

C# 使用Log4Net记录程序日志

在之前的博客中,写过使用系统内置的Trace类记录程序日志,具体请参考:C# 使用Trace记录程序日志.这篇博客将介绍如何使用Log4Net记录程序日志. 首先需要引用Log4Net.dll,我们可以使用Visual Studio的NuGet来引入,也可以从官网上面下载.下面是一个简单的LogHelper类, using log4net; [assembly: log4net.Config.XmlConfigurator(Watch = true)] namespace CommonLibra