zoukankan      html  css  js  c++  java
  • 关于python的log日志如何去写

    18.日志(模块 logging)

    • 基本应用

    • 日志处理本质:Logger/FileHandler/Formatter

      • 推荐处理日志方式

          import logging

        file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)
        logging.basicConfig(
           format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
           datefmt='%Y-%m-%d %H:%M:%S %p',
           handlers=[file_handler,],
           level=logging.ERROR
                                        level 默认是ERROR 可以指定level   日志只写比 ERROR更高等级的 【 info < error < warning <.....】
        
        

        )

        logging.error('你好')
    • 推荐处理日志方式 + 日志分割

        import time
      import logging
      from logging import handlers
      # file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)
      file_handler = handlers.TimedRotatingFileHandler(filename='x3.log', when='s', interval=5, encoding='utf-8')
      logging.basicConfig(
         format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
         datefmt='%Y-%m-%d %H:%M:%S %p',
         handlers=[file_handler,],
         level=logging.ERROR
      )

      for i in range(1,100000):
         time.sleep(1)
         logging.error(str(i))

      注意事项:

        # 在应用日志时,如果想要保留异常的堆栈信息。
      import logging
      import requests

      logging.basicConfig(
         filename='wf.log',
         format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
         datefmt='%Y-%m-%d %H:%M:%S %p',
         level=logging.ERROR
      )

      try:
         requests.get('http://www.xxx.com')
      except Exception as e:
         msg = str(e) # 调用e.__str__方法
         logging.error(msg,exc_info=True)
    • # 单例模式 设计模式
      # 什么是单例模式
      # 单例的应用场景
      # __new__方法 :创建实例的 并且在init之前工作
      # logging模块
      # 记录日志的
      # 用户 :
      # 程序员 :
      # 统计用的
      # 用来做故障排除的 debug
      # 用来记录错误,完成代码的优化的
      # logging.basicconfig
      # 使用方便
      # 不能实现 编码问题;不能同时向文件和屏幕上输出
      # logging.debug,logging.warning
      # logger对象
      # 复杂
      # 创建一个logger对象
      # 创建一个文件操作符
      # 创建一个屏幕操作符
      # 创建一个格式

      # 给logger对象绑定 文件操作符    # 吸星大法
      # 给logger对象绑定 屏幕操作符
      # 给文件操作符 设定格式
      # 给屏幕操作符 设定格式

      # 用logger对象来操作
      # logger = logging.getLogger()

      # fh = logging.FileHandler('log.log')    log信息文件写入
      # sh = logging.StreamHandler()   log信息屏幕显示
      # logger.addHandler(fh)        吸星大法
      # logger.addHandler(sh)  吸星大法
      # formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
      # fh.setFormatter(formatter)
      # sh.setFormatter(formatter)
      # logger.warning('message')

    19.项目结构目录

    # **************** 项目结构目录文件夹 ****************# 6个项目目录

    # bin 可执行文件:程序入口

    #config 配置&参数设置

    # db 数据&内容

    # lib 公共功能

    # log 日志代码

    # src 业务代码

  • 相关阅读:
    软工实践结对作业第二次
    团队展示
    软件工程结对作业
    软工实践第二次作业
    栈的初步学习
    课程作业四
    作业
    课程作业2
    博客汇总目录
    Mybatis-plus学习笔记,基于springboot
  • 原文地址:https://www.cnblogs.com/yx12138/p/10849041.html
Copyright © 2011-2022 走看看