python日志配置

算法星河使
• 阅读 3335

先来一段程序告知python怎样配置日志。

logging.basicConfig(level=logging.DEBUG)  # 设置日志级别
# 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限
file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024 * 1024 * 100, backupCount=10)
# 创建日志记录的格式 日志等级 输入日志信息的文件名 行数 日志信息
formatter = logging.Formatter('%(levelname)s %(filename)s:%(lineno)d %(message)s')
# 为刚创建的日志记录器设置日志记录格式
file_log_handler.setFormatter(formatter)
# 为全局的日志工具对象(flask app使用的)添加日志记录器
logging.getLogger().addHandler(file_log_handler)

分析代码:

basicConfig():对日志系统进行一次性配置,以下是可以指定的关键字参数
    filename:指定日志输出目标文件的文件名,指定该设置项后日志信心就不会被输出到控制台了
    filemode:指定日志文件的打开模式,默认为'a'。需要注意的是,该选项要在filename指定时才有效
    format:指定日志格式字符串,即指定日志输出时所包含的字段信息以及它们的顺序。logging模块定义的格式字段下面会列出。
    datefmt:指定日期/时间格式。需要注意的是,该选项要在format中包含时间字段%(asctime)s时才有效
    level:指定日志器的日志级别
    stream:指定日志输出目标stream,如sys.stdout、sys.stderr以及网络stream。需要说明的是,stream和filename不能同时提供,否则会引发 ValueError异常
    handlers:Python 3.3中新添加的配置项。该选项如果被指定,它应该是一个创建了多个Handler的可迭代对象,这些handler将会被添加到root logger。需要说明的是:filename、stream和handlers这三个配置项只能有一个存在,不能同时出现2个或3个,否则会引发ValueError异常。
    
RotatingFileHandler():轮转文件处理器,将日志消息发送到磁盘文件,并支持日志文件按大小切割
FileHandler():将日志消息发送到磁盘文件,默认情况下文件大小会无限增长
StreamHandler():将日志消息发送到输出到Stream,如std.out, std.err或任何file-like对象。

Formatter():格式器,决定日志记录的最终输出格式
    %(levelname)s:日志记录的级别
    %(message)s:日志记录的内容
    %(asctime)s:日志记录的时间
    %(pathname)s:调用日志记录文件的全路径
    %(filename)s:pathname的文件名部分
    %(module)s:pathname的文件名,不包含后缀
    %(funcName)s:调用日志记录文件的函数名
getLogger():创建一个Logger对象
    addHandler():添加一个处理器

日志级别

以下是由低到高,默认设置等级后不显示低等级的消息

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL(很少使用)

参考文档:https://www.cnblogs.com/yyds/...

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
10个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
4年前
Spring Boot日志集成
!(https://oscimg.oschina.net/oscnet/1bde8e8d00e848be8b84e9d1d44c9e5c.jpg)SpringBoot日志框架SpringBoot支持JavaUtilLogging,Log4j2,Lockback作为日志框架,如果你使用star
Wesley13 Wesley13
4年前
Cisco配置发送日志到日志服务器
Cisco配置发送日志到日志服务器logging133.3.3.2loggingonloggingtrap7 //指定日志消息的级别(0:紧急(Emergencies)1:告警(Alerts)2:严重的(Critical)3:错误(Errors)4:警告(Warnings)5:通知(Notifications)6:信
Stella981 Stella981
4年前
Linux下logrotate配置
logrotate程序是一个日志文件管理工具。用来把旧的日志文件更名或删除,并创建新的日志文件,我们把它叫做“转储”。是个使日志轮替的程序,有了它就不用看着自己的日志体积一天天的变大,而可以根据你自己的需求来设定日志转储。 ubuntu下logrotate配置文件路径:/etc/logrotate.conf /etc/logrota
Stella981 Stella981
4年前
Logstash收集nginx访问日志和错误日志
1、收集访问日志1)、首先是要在nginx里面配置日志格式化输出log_formatmain"$http_x_forwarded_for|$time_local|$request|$status|$body_bytes_sent|$request_body|$content_length|$http_ref
Stella981 Stella981
4年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
Stella981 Stella981
4年前
Python3常用模块
logging模块一、日志级别CRITICAL50FATALCRITICALERROR40WARNING30WARNWARNINGINFO20DEBUG10NOTSET0不设置二、默认级
Stella981 Stella981
4年前
Python日志库logging总结
在部署项目时,不可能直接将所有的信息都输出到控制台中,我们可以将这些信息记录到日志文件中,这样不仅方便我们查看程序运行时的情况,也可以在项目出现故障时根据运行时产生的日志快速定位问题出现的位置。1、日志级别Python标准库logging用作记录日志,默认分为六种日志级别(括号为级别对应的数值),NOTSET(0)、DEBUG(10)
飞龙AI 飞龙AI
6个月前
DevEcoStudio 中使用模拟器时如何过滤日志
DevEcoStudio中使用模拟器时如何过滤日志鸿蒙核心技术鸿蒙开发者工具DevEcoStudio在HilogSettingsFilter设置Logmessage:A03d00/JSAPP当你看到不断更新的日志时,你会不会崩溃因为Nofilters模式下
算法星河使
算法星河使
Lv1
二十四桥明月夜,玉人何处教吹箫?
文章
3
粉丝
0
获赞
0