zoukankan      html  css  js  c++  java
  • 日志-02

    
    
    '''
    1.自定义日志: 一般的日志都是固定的写入一个文件中,不管你定义多少个logging.basicConfig(filename='rizhi.txt',
    format='%(asctime)s - %(name)s - %(module)s: %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    level=10)
    它最终都只写在第一个文件里,也即写在'rizhi.txt'文件中.因为日志的写入机制是,它先去内存中查找有无创建logging.basicConfig,若是内存中已经有
    了,那它就不会再次创建,而是直接把所有日志全都写入到该logging.basicConfig定义的文件中去.因此当代码中出现第二个logging.basicConfig时,
    系统不会再去内存中开创一个空间,而是依旧把新日志写入第一个文件中去.
    而自定义日志可以做到你想把日志写入哪个文件,就把日志写入哪个文件中的功能.

    '''
    import logging

    # 创建一个日志的操作对象logger1,以及被操作日志对象file_handler1.(日志对象中定义了日志文件)
    file_handler1 = logging.FileHandler('rizhi1.txt', 'a', encoding='utf-8')
    file_handler1.setFormatter(logging.Formatter(fmt='%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s'))

    # logger1为操作日志的对象,s1为用户名称,level后规定当错误级别达到多大时,才往日志中写.
    logger1 = logging.Logger('s1', level=logging.ERROR)

    # 往操作日志对象logger1中添加日志对象file_handler日志,供其操作

    logger1.addHandler(file_handler1)

    # 往logger1对象中写级别为error的数据'131234'

    logger1.error('131234')

    # 创建第二个日志的操作对象logger2,以及被操作日志对象file_handler2.
    file_handler2 = logging.FileHandler('rizhi2.txt', 'a', encoding='utf-8')
    file_handler2.setFormatter(logging.Formatter(fmt='%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s'))

    logger2 = logging.Logger('s2', level=logging.ERROR)
    logger2.addHandler(file_handler2)

    logger2.error('666') # 这个666会写入rizhi2.txt文件中,而非rizhi1.txt中,以此实现了能在相同py文件中的,不同日志文件中写入日志中的功能.

    
    
  • 相关阅读:
    ThinkPHP5.0更改框架的验证方法:对象->validate(true)->save();
    ThinkPHP5.0版本和ThinkPHP3.2版本的区别
    ThinkPHP5.0版本的优势在于:
    11: django-haystack+jieba+whoosh实现全文检索
    10: supervisor进程管理工具
    09: redis集群之sentinel
    08: python支付宝支付
    07: redis分布式锁解决超卖问题
    06:keepalive高可用集群(新)
    05: 使用docker部署nginx负载均衡
  • 原文地址:https://www.cnblogs.com/gongteng/p/13543304.html
Copyright © 2011-2022 走看看