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文件中的,不同日志文件中写入日志中的功能.

    
    
  • 相关阅读:
    LeetCode206翻转链表问题,多解法求解
    使用GCC编译c源程序经历的几个步骤
    部分内置函数(不含面向对象型)
    Python初学1
    函数的作用域与匿名函数
    生成器函数以及生产消费模型
    【VC编译错误】error C2872: 'ofstream' : ambiguous symbol
    【C开发】无限循环 while(1) 和 for(; ;)
    【C开发】预编译处理命令(#define、typedef、#include、#运算符)
    编译DLL出现无法解析的外部符号
  • 原文地址:https://www.cnblogs.com/gongteng/p/13543304.html
Copyright © 2011-2022 走看看