`
watershitter
  • 浏览: 43008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

py doc logging模块的设计思想

阅读更多
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的logging模块

    用python写程序的,作为一个完整的项目而言,必须要有日志模块,而python的logging模块为我们提供了这么一种很好的机制,很方便的解决了这个问题。

    python的logging模块.pdf

    详解python的日志模块logging和django中对logging模块的使用

    python logging 模块

    logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而...

    python中logging模块

    转载于https://www.cnblogs.com/Nicholas0707/p/9021672.html,支持正版

    Python日志logging模块功能与用法详解

    本文实例讲述了Python日志logging模块功能与用法。分享给大家供大家参考,具体如下: 本文内容: logging模块的介绍 logging模块的基础使用 logging模块的扩展使用 logging中的Filter 使用配置文件配置logging...

    logging模块封装

    logging模块封装

    Python中内置的日志模块logging用法详解

    logging模块简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以...

    解读python logging模块的使用方法

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 1.可以通过设置不同的日志等级,在release版本...

    Python logging模块handlers用法详解

    主要介绍了Python logging模块handlers用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python 日志 logging模块详细解析

    主要介绍了python 日志 logging模块 详细解析,本文通过实例代码给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下

    Python logging模块原理解析及应用

    主要介绍了Python logging模块原理解析及应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    [C++][Logging] 项目中写日志模块的实现

    NULL 博文链接:https://jacky-dai.iteye.com/blog/1118808

    Python使用logging模块实现打印log到指定文件的方法

    主要介绍了Python使用logging模块实现打印log到指定文件的方法,结合实例形式分析了Python logging模块的原理及相关日志输出操作技巧,需要的朋友可以参考下

    详解Python中logging日志模块在多进程环境下的使用

    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行...这篇文章给大家主要介绍了在Python中logging日志模块在多进程环境下的使用,需要的朋友可以参考借鉴,下面来一起看看吧。

    详解使用python的logging模块在stdout输出的两种方法

    详解使用python的logging模块在stdout输出 前言:  使用python的logging模块时,除了想将日志记录在文件中外,还希望在前台执行python脚本时,可以将日志直接输出到标准输出std.out中。 实现  logging模块可以有两...

    Python logging模块进行封装实现原理解析

    主要介绍了Python logging模块进行封装实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    多个python文件调用logging模块报错误

    python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍。下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调用,而每个文件设置了对应的logging方式...

    Python 日志logging模块用法简单示例

    本文实例讲述了Python 日志logging模块用法。分享给大家供大家参考,具体如下: demo.py(日志,输出到控制台): import logging # 导入logging模块 # 日志级别默认是WARNING logging.basicConfig(level=logging....

    python logging模块的使用总结

    logging.basicConfig()函数中的具体参数含义 filename:指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中; filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“w”还可指定为“a...

Global site tag (gtag.js) - Google Analytics