1 所有的Logger 对象没有都没有直接的 initiate 方法,全部都过logging.getLogger的方式获得。
“Note that Loggers are never instantiated directly, but always through the module-level function logging.getLogger(name).”
这种设计意图是在应用程序的任何地方可以通过name来获得同一个Logger,(设计时是否可以写一个py,然后加载源代码的时候执行特定name的logger的配置工作。之后在其余代码中就可以直接log了~,一处设置,多处使用~
2 模块即logging 自己有一套 debug,info方法,默认使用root作为name,典型接口:
logging.log(level, msg[, *args[, **kwargs]])
但是模块方法不要用在多线程,请参考文档,log接口下面
3 logging.basicConfig([**kwargs])
默认的是:creating a StreamHandler with a default Formatter(控制台输出)
重要特性:This function does nothing if the root logger already has handlers configured for it. 这使它"看上去"只有第一执行有效(但应该不完全是吧,未验证..)
多线程注意:PLEASE NOTE: This function should be called from the main thread before other threads are started.
4 在不特意制定handler的情况下,通过logging模块及的 getLogger(name)获取多个Logger, 他们将输出到同一个地方,这种设置是让多个logger,(name区分)来写同一个log文件(输出destination)!
而且, logging是模块是 threadsafe, 放心用:)
5 可以通过为每一个Logger,Name区分,配置一个 Handler。 1对1服务。
一个logger 也可以设置多个Handler, 1:N 服务
多个logger也可以指向同一个Handler, N:1 服务,
而Formater 是针对Handler来设置。
恩,理了一下感觉它很灵活了!
6 我的需求。为每一个新的事件,如一个活动的py,指定一个专门的log文件。记录业务。
使用1:1的logger,配比即可。
而出错的情况则使用 application 整个应用程序的log。 为真个app配置一个大log即可。
7 问题,我的使用方式一般是在 django服务上挂多个不同的活动py,有时间限定,如何来管理特定 Logger的生命周期呢? 是需要用的时候载入,还是django服务启动的时候载入,如果多个活动累计下来,那些活动过期不用的Logger岂不是白占用了内存...(他们占得多么?有必要操心管理么?)
8 level
覆盖问题!!!:默认情况下hanlder的level会被logger的level过滤,logger默认level=WARNING,所以要想handler能处理更低级的log,先把logger弄到底:)
分享到:
相关推荐
用python写程序的,作为一个完整的项目而言,必须要有日志模块,而python的logging模块为我们提供了这么一种很好的机制,很方便的解决了这个问题。
详解python的日志模块logging和django中对logging模块的使用
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而...
转载于https://www.cnblogs.com/Nicholas0707/p/9021672.html,支持正版
本文实例讲述了Python日志logging模块功能与用法。分享给大家供大家参考,具体如下: 本文内容: logging模块的介绍 logging模块的基础使用 logging模块的扩展使用 logging中的Filter 使用配置文件配置logging...
logging模块封装
logging模块简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以...
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 1.可以通过设置不同的日志等级,在release版本...
主要介绍了Python logging模块handlers用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了python 日志 logging模块 详细解析,本文通过实例代码给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了Python logging模块原理解析及应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
NULL 博文链接:https://jacky-dai.iteye.com/blog/1118808
主要介绍了Python使用logging模块实现打印log到指定文件的方法,结合实例形式分析了Python logging模块的原理及相关日志输出操作技巧,需要的朋友可以参考下
许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行...这篇文章给大家主要介绍了在Python中logging日志模块在多进程环境下的使用,需要的朋友可以参考借鉴,下面来一起看看吧。
详解使用python的logging模块在stdout输出 前言: 使用python的logging模块时,除了想将日志记录在文件中外,还希望在前台执行python脚本时,可以将日志直接输出到标准输出std.out中。 实现 logging模块可以有两...
主要介绍了Python logging模块进行封装实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍。下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调用,而每个文件设置了对应的logging方式...
本文实例讲述了Python 日志logging模块用法。分享给大家供大家参考,具体如下: demo.py(日志,输出到控制台): import logging # 导入logging模块 # 日志级别默认是WARNING logging.basicConfig(level=logging....
logging.basicConfig()函数中的具体参数含义 filename:指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中; filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“w”还可指定为“a...