python logging 模块(三)

来源:互联网 发布:unity3d 动画循环播放 编辑:程序博客网 时间:2024/06/05 15:52

这篇重点是讲解logging 模块的ScodkeHandler, Filter, 以及logging模块的文件配置方式

  • SocketHandler
    socketHandler 的用法比较复杂,客户端的写法与上一章节所讲的基本类似,但是我们需要对服务端代码进行相应的修改。(ps: 如果用socket模块写服务端,返回的是一堆乱码, 用正常的socketServer会返回正确的内容,但格式会发生问题,有一些乱的符号)

  • Filter
    Filter的用法比较简单,就是通过设置logger的名字,来规定只有被允许的logger和logger的子logger才能打印。代码如下:

    import loggingfmt = '%(asctime)s - %(filename)s:%(lineno)s - %(name)s - %(message)s's_handler = logging.StreamHandler()formatter = logging.Formatter('${name}: ${levelname} ${asctime} ${message}', '%Y-%m-%d %H:%M:%S', '$')s_handler.setFormatter(formatter)ss_logger = logging.getLogger("ss")a_filter = logging.Filter("ss.aa")ss_logger.addHandler(s_handler)aa_logger = logging.getLogger("ss.aa")bb_logger = logging.getLogger('ss.aa.bb')s_handler.addFilter(a_filter)ss_logger.error("asasdasd")aa_logger.error("asdasd")bb_logger.error('asdsdasdasd')
  • logging.conf
    logging.conf 是通过配置文件的方式,来配置logging的各项属性:
    下面是配置文件的内容
[loggers]keys=root[handlers]keys=consoleHandler,fileHandler[formatters]keys=simpleFormatter[logger_root]level=DEBUGhandlers=fileHandler[handler_consoleHandler]class=StreamHandlerlevel=DEBUGformatter=simpleFormatterargs=(sys.stdout,)[handler_fileHandler]class=FileHandlerlevel=DEBUGformat=simpleFormatterargs=("./loggg.log", 'a')[formatter_simpleFormatter]format=%(asctime)s - %(name)s - %(levelname)s - %(message)sdatefmt=

调用方法:

import loggingimport logging.config as configconfig.fileConfig("test2/logging.conf")logger1 = logging.getLogger('root')logger1.debug("asdasd")

此外我们还可以用son格式的文件来配置logging……..这个就不讲了。。。(^下班要回家了^)

原创粉丝点击