loogging模块
'''
import logging
logging.debug('debug日志') # 10
logging.info('info日志')   # 20
logging.warning('warning日志') #30
logging.error('error日志')#40
logging.critical('critical日志') #50
 
# 1. 能够同时往终端与文件中记录日志
# 2. 能够修改字符串编码
import logging
# 1. logger对象: 负责生产各种级别的日志
logger1 = logging.getLogger('用户交易')  # 日志名用来标识日志的与什么业务有关
# 2. filter对象: 过滤日志
# 3. handler对象: 控制日志输出目标位置
fh1 = logging.FileHandler('a1.log',encoding='utf-8')
fh2 = logging.FileHandler('a2.log',encoding='utf-8')
ch = logging.StreamHandler()
# 4. formmater对象
formatter1 = logging.Formatter(
    fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p'
)
formatter2 = logging.Formatter(
    fmt='%(asctime)s - %(levelname)s :  %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p'
)
# 5. 绑定logger对象与handler对象
logger1.addHandler(fh1)
logger1.addHandler(fh2)
logger1.addHandler(ch)
# 6. 绑定handler对象与formatter对象
fh1.setFormatter(formatter1)
fh2.setFormatter(formatter1)
ch.setFormatter(formatter2)
# 7. 设置日志级别,有logger对象与handler对象两层关卡,必须都放行最终日志才会放行,通常二者级别相同
logger1.setLevel(10)
fh1.setLevel(10)
fh2.setLevel(10)
ch.setLevel(10)
# 8. 使用logger对象产生日志
logger1.info('alex给egon转账1个亿')
import os
# 日志相关的配置
BASE_DIR=os.path.dirname(os.path.dirname(__file__))
standard_format = '%(asctime)s - task:%(name)s - %(filename)s:%(lineno)d -' \
                  ' %(levelname)s : [%(message)s]'
simple_format = '%(filename)s:%(lineno)d - %(levelname)s : [%(message)s]'
fh1_path = os.path.join(BASE_DIR,'log','a1.log')
fh2_path = os.path.join(BASE_DIR,'log','a2.log')
 
项目配置
# log配置字典
LOGGING_DIC = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format': standard_format
        },
        'simple': {
            'format': simple_format
        },
    },
    'filters': {},
    'handlers': {
        #打印到终端的日志
        'ch': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',  # 打印到终端
            'formatter': 'simple'
        },
        #打印到a1.log文件的日志
        'fh1': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',  # 保存到文件
            'formatter': 'standard',
            'filename': fh1_path,  # 日志文件的路径
            'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
        },
        # 打印到a2.log文件的日志
        'fh2': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',  # 保存到文件
            'formatter': 'simple',
            'filename': fh2_path,  # 日志文件的路径
            'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
        },
    },
    'loggers': {
        '': {
            'handlers': ['fh1', 'fh2', 'ch'],
            'level': 'DEBUG',
        },
    },
}
 
import logging.config
from conf import settings
def get_logger(name):
    logging.config.dictConfig(settings.LOGGING_DIC)
    logger1=logging.getLogger(name)
    return logger1

(常用)loogging模块及(项目字典)的更多相关文章

  1. python 常用的模块

    面试的过程中经常被问到使用过那些python模块,然后我大脑就出现了一片空白各种模块一顿说,其实一点顺序也没有然后给面试官造成的印象就是自己是否真实的用到这些模块,所以总结下自己实际工作中常用的模块: ...

  2. Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结

    Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结 常用200个模块 2017/04/12  22:01    <DIR>          acc 2017/04 ...

  3. python中常用的模块一

    一,常用的模块 模块就是我们将装有特定功能的代码进行归类,从代码编写的单位来看我们的程序,从小到大的顺序: 一条代码<语句块,<代码块(函数,类)<模块我们所写的所有py文件都是模块 ...

  4. Python学习手册之__main__ 模块,常用第三方模块和打包发布

    在上一篇文章中,我们介绍了 Python 的 元组拆包.三元运算符和对 Python 的 else 语句进行了深入讲解,现在我们介绍 Python 的 __main__ 模块.常用第三方模块和打包发布 ...

  5. maven3常用命令、java项目搭建、web项目搭建详细图解(转)

     转自:http://blog.csdn.net/edward0830ly/article/details/8748986 maven3常用命令.java项目搭建.web项目搭建详细图解 2013-0 ...

  6. 创建支持eclipse的多模块maven项目

    通过maven可以创建多个关联模块的项目(Multiple Module Projects).由一个总的模块,下面包含多个子模块(子模块还可以包含子模块). 这种maven功能能支持大型的项目构建,往 ...

  7. maven创建子项目(适用于多模块管理项目)

    在eclipse或者myeclipse下构建maven项目,该项目由多个子模块组成. 1.创建一个父项目 NEW -->project-->maven-->maven Project ...

  8. Linux驱动学习之常用的模块操作命令

    1.常用的模块操作命令 (1)lsmod(list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表 (2)insmod(install module,安装模块),功能是向当前 ...

  9. 整理部分JS 控件 WEB前端常用的做成Jsp项目,方便今后直接用

    整理部分JS 控件  WEB前端常用的做成Jsp项目,方便今后直接用 最近又没时间了,等用时间了,再加入更多的, 源码下载: http://download.csdn.net/detail/liang ...

随机推荐

  1. mysql导入导出sql文件,source导入速度慢的解决办法

    1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u dbuser -p dbname > dbname.sql2.导出一个表mys ...

  2. DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

    前言(2018/11/4) DXTK库现在已经不随Github项目提供,因为只用到了其中的键鼠类,已经过提取加入到后续的项目中 但是如果你需要配置DirectXTK到自己的项目当中,可以参考这篇博客进 ...

  3. 缓存之 -Redis

    其实这类服务还一样, server , client 两端... WIN 和 linux 均可,开源发现源码还是 C 看来 C 还是王者哦...后悔没深入学 Redis支持五种数据类型:string( ...

  4. js/java常用正则表达式及写法

    不定时增加正则表达式. 其中 Js验证写法: var str = "待验证文本"; var regular = new RegExp(/^这里是正则表达式/); if (regul ...

  5. 未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker

    昨晚遇到的这个问题,也知道Notifications service依赖底层的Service broker的.本以为只需要执行以下脚本对数据库启用Service broker即可. alter dat ...

  6. vuex中strict严格模式

    开启严格模式,仅需在创建 store 的时候传入strict: true const store = new Vuex.Store({ state, strict:true//开启严格模式后,只能通过 ...

  7. Kettle 和数据建模的几个学习资料

    视频课程: 1. 初建军的   [慕课大巴分享]炼数成金——深入BI - Kettle 篇 基础书:1. Kettle 3.0 用户手册, 文件名为: ETL工具Kettle用户手册(上).pdf, ...

  8. Ext.net 的锁定列要集中放到前面

    如题,Ext.net的锁定列要集中放在一起,不然的话,在使用排序的时候,会引起实际排序列错乱比如有A,B,C,D四列,A,C锁定,最终显示为A C | B D,这个时候如果点击B时,发现排序跑到了C上 ...

  9. None.js 第四步 事件驱动程序

    Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件 // 导入events模块 var events = require ...

  10. Linux查看版本信息

    查看Linux版本以及是32位还是64位 查看版本 一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [root@S-CentOS home]# cat /proc ...