日志信息相关内容 一

# 日志的处理
# 1、记录的信息不全面,比如没有记录时间信息、没有执行人信息、日志等级信息、日志详细信息
# 2、文件记录的信息混乱不清,不方便使用脚本统计
# 3、当日志文件大的时候,没有自动进行日志轮转功能

# 引出 日志器
# 日志信息

# 日志收集器(Logger),用来装日志信息

# 日志收集器的日志等级(NOTSET(0)、DEBUG(10)、INFO(20)、WARNING(30)、ERROR(40)、CRITICAL(50))
# NOTSET(0):无限制,只要是日志信息都可以收集
# DEBUG(10):只收集等级大于 DEBUG 的日志信息(不收集 NOTSET)
# INFO(20):只收集等级大于 INFO 的日志信息(不收集 NOTSET、DEBUG)
# WARNING(30):只收集等级大于 WARNING 的日志信息
# ERROR(40):只收集等级大于 ERROR 的日志信息
# CRITICAL(50):只收集日志等级为 CRITICAL 的日志信息
# 日志等级比当前设置的等级高的都能收集,而比设置的等级低的都不能收集

# 日志输出渠道(Handler):console终端、文件、smtp邮件、http

# 日志输出渠道的日志等级:
# 日志等级比当前设置的等级高的都能输出,而比设置的等级低的都不能输出

# 日志的显示格式(Formatter)

# 操作步骤
import logging
# 是 python 自带的模块,
# 如果不定义日志器,会使用默认的root根日志器来进行收集。使用的日志等级为 WARNING

# 1、定义日志收集器
case_logger = logging.getLogger('case')
# logging.getLogger() 的第一个参数name如果为空,默认使用的还是root根日志收集器,所以需要传一个值
# 返回 Logger 对象

# 2、指定日志收集器的日志等级(NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL)
case_logger.setLevel(logging.DEBUG)

# 3、定义日志输出渠道
# 可以指定多个渠道(console终端、文件 等)
# 输出到 console 终端
console_handle = logging.StreamHandler()

# 输出到文件
file_handle = logging.FileHandler('case.log', encoding='utf-8')

# 4、指定日志输出渠道的日志等级
# 如果都不能够被日志收集器收集到的日志,那么一定没办法输出到渠道中
console_handle.setLevel(logging.ERROR)
# console_handle.setLevel('ERROR')  # 也可以使用字符串的形式直接赋值
file_handle.setLevel('INFO')

# 5、定义日志显示的格式
simple_formatter = logging.Formatter('%(asctime)s - [%(levelname)s] - [日志信息]:%(message)s')  # 简单日志格式
verbose_formatter = logging.Formatter(
    '%(asctime)s - [%(levelname)s] - %(module)s - %(name)s - %(lineno)d - [日志信息]:%(message)s')  # 复杂日志格式

# 设置终端的日志格式:简单格式
console_handle.setFormatter(simple_formatter)
# 设置文件的日志格式:复杂格式
file_handle.setFormatter(verbose_formatter)

# %(asctime)s  日志产生的时间
# %(levalname)s  日志等级
# %(module)s  当前 py 文件的名称
# %(message)s  日志具体信息
# %(name)s  日志收集器的名称
# %(lineno)d  行数
# 格式是 %()s 中间加上一个变量,变量名是固定的

# 6、对接。将日志收集器和输出渠道对接
case_logger.addHandler(console_handle)
case_logger.addHandler(file_handle)

if __name__ == '__main__':
    case_logger.debug('这是 debug 级别的日志。')
    case_logger.info('这是 info 级别的日志。')
    case_logger.warning('这是 warning 级别的日志。')
    case_logger.error('这是 error 级别的日志。')
    case_logger.critical('这是 critical 级别的日志。')

原文地址:https://www.cnblogs.com/testyuz/p/12169204.html

时间: 2024-11-07 16:13:53

日志信息相关内容 一的相关文章

shell脚本死循环判断nginx日志reqest_time时间大于3秒是否增加,若增加发送相关日志信息到开发人员

#!/bin/bash while [ 1 ] do pre_request_time_count=`cat /var/log/nginx/access.log |awk '{print $NF}'|awk -F '"' ' $2>3 '|awk -F '"' '{print $2}'|wc -l` # 取 request_tme 大于3秒的计数值 echo $pre_request_time_count sleep 300 last_request_time_count=`ca

mysql优化一 之 优化内容概述及开启慢查日志的相关配置

1-1数据库优化的目的 首先是为了避免出现页面访问错误(基本有三种) (1)由于数据库连接timeout产生的页面5XX错误 (2)由于慢查询造成页面无法加载 (3)由于阻塞造成的数据无法提交 其次:增加数据库的稳定性      很多数据库问题都是由于低效的查询引起的 还有:优化用户体验       流畅页面的访问速度               良好的网站体验 1-2:优化概述 据图我们可以知道,数据库的优化主要是四个方面,其中从下往上成本越来越高,但是效果越来越低.瞬间赶脚咱们平时写的代码执

Linux系统中如何查看日志信息

日志文件是用于记录Linux系统中各种运行消息的文件,不同的日志文件记载了不同类型的信息,对于诊断和解决系统中的问题很有帮助 分析日志文件 日志数据主要包括三种类型:内核及系统日志.用户日志.程序日志 #对于大多数的文本格式的日志文件,使用tail.more.less.cat 等命令就可查看日志内容 #对于一些二进制格式的日志文件(如用户日志文件),使用who.w.users.last.lastb等 内核及系统日志的配置文件为 /etc/rsyslog.conf,通过查看文件内容,可以了解到系统

Windows Server 2008 R2/2012 网络负载平衡NLB相关内容

使用网络负载均衡技术可以实现一些应用程序的可用性和可伸缩性,常用的应用程序有:IIS.防火墙.VPN以及一些关键业务.每一个节点运行应用程序的一个副本.NLB在群集中的多个主机中分发传入的客户端请求.可以动态地添加主机,也可以将所有流量引导到指定的单个主机,这个主机就称为默认主主机.在一个群集中最多支持 32 台计算机. 当计算机意外出现故障或者脱机时,将断开与出现故障或脱机的服务器之间的活动连接.但是,如果您有意关闭主机,则可以在使计算机脱机之前,使用 drainstop 命令处理所有活动的连

基于KNN的相关内容推荐

如果做网站的内容运营,相关内容推荐可以帮助用户更快地寻找和发现感兴趣的信息,从而提升网站内容浏览的流畅性,进而提升网站的价值转化.相关内容 推荐最常见的两块就是“关联推荐”和“相关内容推荐”,关联推荐就是我们常说的购物篮分析,即使用购买了某商品的用户同时购买了什么这个规则来发现商品间 的潜在联系,之前有相关的文章介绍——向上营销.交叉营销与关联推荐:关联推荐是基于用户行为分析的推荐,而相关内容推荐是基于内容固有特征的推荐,只与内容本身有关,与用户的行为完全无关,所以相关内容推荐的模型是一种“冷启

syslog相关内容介绍

syslog相关内容介绍 简介: syslog server 从网络设备接收系统日志消息,并实时显示它们. 系统日志消息可以使用以下事件进行处理: 1.在滚动窗口中显示消息 2.将消息记录到文本文件 3.将消息转发到另一个系统日志服务器 4.记录到ODBC数据库 5.记录到NT应用程序事件日志 6.通过SMTP将消息通过电子邮件发送给某人 7.运行外部程序,如寻呼通知系统 8.发送SNMP陷阱消息 系统syslog内容的相关介绍 安装源码包,既不影响系统里面运行的syslog,也由于二者容易冲突

TortoiseSVN无法编辑日志信息的解决方法

提交时忘记编写日志,事后想在版本库浏览器中编辑日志信息,却弹出错误,"此版本库不允许修改版本属性请管理员创建pre-revprop-change钩子".解决方法如下: 在版本库的hooks目录中,新建pre-revprop-change.bat文本文件,编辑内容为: if "%4" == "svn:log" exit 0 echo Property '%4' cannot be changed >&2 exit 1 上面的批处理命令

ibatis配置log4j输出sql日志信息

为了在开发过程更加直观,我们需要将ibatis日志打开以便观察ibatis运作的细节. ibatis采用Apache common_logging,并结合Apache log4j作为日志输出组件. 在CLASSPATH中新建log4j.properties配置文件,内容如下: log4j.rootLogger=DEBUG,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layo

运维开发:python websocket网页实时显示远程服务器日志信息

功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用ajax每隔段时间去获取服务器日志?out了,试试用websocket方式吧 我用bottle框架,写了个websocket服务端,浏览器连接到websocket server,再用python subprocess获取远程服务器的日志信息,subprocess,就是用Popen调用shell的sh