本文目录一览:
- 1、Python日志模块介绍
- 2、linux python 日志在哪
- 3、在 python 项目中如何记录日志
- 4、python之三方库日志
- 5、Python日志—Python日志模块logging介绍
Python日志模块介绍
logging 模块预定义了5种日志级别,并根据它们所跟踪的事件的级别或严重程度来命名,具体如下:
注意:
Logger 对象有三个功能:
Logger 对象的使用最广泛的方法主要是:配置和记录消息
当配置了 Logger 对象后,就可以使用 Logger.debug() , Logger.info() , Logger.warning , Logger.error , Logger.critical() 方法来创建日志消息,只需将需要记录的消息写进括号内即可
Handler 对象负责将日志消息(基于日志消息的严重性)分派给处理器的指定目标。在上一步中提到,可以使用 Logger.addHandler() 来添加零个或多个处理器对象。例如,算法可以将所有日志消息都发送到控制台,将 ERROR 或者更高级别的消息发送到磁盘文件。这就需要两个单独的处理器。
处理器有很多 种类 ,常用的主要有以下几种:
Formatter 对象是用来配置日志消息的最终输出形式。其格式由 %(dictionary key)s 这样的表达形式来组合成字符串。例如:
其中,可以设置的dictionary key可参考 LogRecord属性
配置完后,我们就可以在我们算法想要进行日志记录的地方调用 Logger.debug() , Logger.info() , Logger.warning , Logger.error , Logger.critical() 来进行日志输出了。比如:
当运行算法时,你会看到控制台输出以下内容
linux python 日志在哪
现在有test.py程序要后台部署, 里面有输出内容
使用命令:
nohup python -u test.py test.log 21
最后的表示后台运行
2 输出错误信息到提示符窗口
1 表示输出信息到提示符窗口, 1前面的注意添加, 否则还会创建一个名为1的文件
最后会把日志文件输出到test.log文件
查看
tail -f test.log如果要实时查看日志文件使用命令
cat test.log查看全部输出使用命令
在 python 项目中如何记录日志
写本文的目的是我在写 python 项目的时候需要记录日志,我忘记怎么处理了,每次都需要去网上查一遍, 好记性不如烂笔头 , 这里把查阅的内容记录下来,方便以后查找。
python 项目中记录日志,可以使用 logging 模块,logging 模块定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统。logging 模块是Python的一个标准库模块,由标准库模块提供日志记录API的关键好处是所有Python模块都可以使用这个日志记录功能。所以,你的应用日志可以将你自己的日志信息与来自第三方模块的信息整合起来。
在 __init__.py 文件中做如下配置:
控制台输出日志如下:
参考文档
python之三方库日志
程序调试
了解程序运行是否正常
故障分析与问题定位
用户行为分析
DEBUG最详细的日志信息,典型应用场景是:问题诊断
INFO 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作。
WARNING当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的。
ERROR由于一个更严重的问题导致某些功能不能正常运行时记录的信息。
CRITICAL当发生严重错误,导致应用程序不能继续运行时记录的信息。
logging日志实例:
在log1.log中显示错误日志:
2021-1-31 14:44:42 PM-root-INFO-02:option correct
2021-1-31 14:44:45 PM-root-INFO-02:option correct
2021-1-31 14:44:47 PM-root-ERROR-02:Must input a digit
2021-1-31 14:44:50 PM-root-ERROR-02:Must input a digit
2021-1-31 14:46:17 PM-root-ERROR-02:Must input a digit
第一种方式是使用logging提供的模块级别的函数 。
第二种方式是使用logging日志系统的四大组件。
Python日志—Python日志模块logging介绍
从事与软件相关工作的人,应该都听过“日志”一词。
日志就是跟踪软件运行时事件的方法,为了能够在程序运行过程中记录错误。
通过日志记录程序的运行,方便我们查询信息,以便追踪问题、进行维护和调试、还是数据分析。
并且各编程语言都形成了各自的日志体系和相应的框架。
日志的作用总结:
首先我们要树立一个观点,那就是“不是为了记录日志而记录日志,日志也不是随意记的”。要实现能够只通过日志文件还原整个程序执行的过程,达到能透明地看到程序里执行情况,每个线程每个过程到底执行结果的目的。日志就像飞机的黑匣子一样,应当能够复原异常的整个现场乃至细节。
在项目中,日志这个功能非常重要,我们要重视起来。
在Python中,使用logging模块来进行日志的处理。
logging是Python的内置模块,主要用于将日志信息进行格式化内容输出,可将格式化内容输出到文件,也可输出到屏幕。
我们在开发过程中,常用print()函数来进行调试,但是在实际应用的部署时,我们要将日志信息输出到文件中,方便后续查找以及备份。
在我们使用日志管理时,我们也可以将日志格式化成Json对象转存到ELK中方便图形化查看及管理。
logging模块将日志系统从高向低依次定义了四个类,分别是logger(日志器)、handler(处理器)、filter(过滤器)和formatter(格式器)。其中由日志器生成的实例将接管原本日志记录函数logging.log的功能。
说明:
我们先来思考下下面的两个问题:
在软件开发阶段或部署开发环境时,为了尽可能详细的查看应用程序的运行状态来保证上线后的稳定性,我们可能需要把该应用程序所有的运行日志全部记录下来进行分析,这是非常耗费机器性能的。
当应用程序正式发布或在生产环境部署应用程序时,我们通常只需要记录应用程序的异常信息、错误信息等,这样既可以减小服务器的I/O压力,也可以避免我们在排查故障时被淹没在日志的海洋里。
那么怎样才能在不改动应用程序代码的情况下,根据事件的重要性或者称之为等级,实现在不同的环境中,记录不同详细程度的日志呢?
这就是日志等级的作用了,我们通过配置文件指定我们需要的日志等级就可以了。
说明:
总结:
开发应用程序时或部署开发环境时,可以使用DEBUG或INFO级别的日志获取尽可能详细的日志信息,可以方便进行开发或部署调试。 应用上线或部署生产环境时,应用使用WARNING或ERROR或CRITICAL级别的日志,来降低机器的I/O压力和提高获取错误日志信息的效率。 日志级别的指定通常都是在应用程序的配置文件中进行指定的。 不同的应用程序所定义的日志等级会有所差别,根据实际需求来决定。