zoukankan      html  css  js  c++  java
  • 把日志同时写到文件和打印到屏幕

    '''
    Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适:
    
         logger提供了应用程序可以直接使用的接口;
             Logger.setLevel(lel):指定最低的日志级别,低于lel的级别将被忽略。debug是最低的内置级别,critical为最高
             Logger.addFilter(filt)、Logger.removeFilter(filt):添加或删除指定的filter
             Logger.addHandler(hdlr)、Logger.removeHandler(hdlr):增加或删除指定的handler
             Logger.debug()、Logger.info()、Logger.warning()、Logger.error()、Logger.critical():可以设置的日志级别
    
         handler将(logger创建的)日志记录发送到合适的目的输出;
              Handler.setLevel(lel):指定被处理的信息级别,低于lel级别的信息将被忽略
              Handler.setFormatter():给这个handler选择一个格式
              Handler.addFilter(filt)、Handler.removeFilter(filt):新增或删除一个filter对象
    
         filter提供了细度设备来决定输出哪条日志记录;
    
         formatter决定日志记录的最终输出格式。
    '''
    import logging
    
    #创建logger
    logger = logging.getLogger('XT-LOG')
    logger.setLevel(logging.DEBUG)  
         #设置全局的日志级别(全局的优先级高于局部的但是若局部的在全局之上,则保存局部的)
         
    #创建一个console handler,并且设置其日志级别为debug
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)
    
    #创建一个file handler,并且设置其日志级别为warning
    fh = logging.FileHandler('./file/logging.log')
    fh.setLevel(logging.WARNING)
    
    #创建一个formatter(格式)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s',datefmt='%Y-%m-%d %H:%M:%S')
    
    #把formatter添加到console handler和file handler
    ch.setFormatter(formatter)
    fh.setFormatter(formatter)
    
    #把console handler和file handler添加到logger
    logger.addHandler(ch)
    logger.addHandler(fh)
    
    #设置错误消息
    logger.debug('debug message')
    logger.info('info message')
    logger.warning('warning message')
    logger.error('error message')
    logger.critical('critical message')
    
    以上输出到屏幕结果:
        2017-04-08 16:12:49 - XT-LOG - DEBUG - debug message
        2017-04-08 16:12:49 - XT-LOG - INFO - info message
        2017-04-08 16:12:49 - XT-LOG - WARNING - warning message
        2017-04-08 16:12:49 - XT-LOG - ERROR - error message
        2017-04-08 16:12:49 - XT-LOG - CRITICAL - critical message
  • 相关阅读:
    python的input获取用户输入
    pyinstaller打包成功的.exe,本机运行正常,在别的电脑上运行报错Failed to execute script ...
    Shell应用:批量将文件编码由gbk转utf8
    不伤眼睛的文字背景色 豆沙绿RGB值为(199,237,204)
    javascript禁用backspace回退,shift+backspace前进,F5等刷新页面功能
    crontab实行shell乱码问题解决
    linux C 函数大全 .
    Web服务器:shell字符串处理
    Linux C编程一站式学习 .
    crontab中date的用法
  • 原文地址:https://www.cnblogs.com/testzcy/p/10877502.html
Copyright © 2011-2022 走看看