logging,包

import 方式

所有对包的操作,都相当于对包下的__init__操作

from a.b.c import d

b 必须 是包 import 最后只有一个层级

相对导入 . 代表当前路径, .. 代表父级路径

logging日志

# 旗舰版
## 旗舰版logging

import os
import logging.config

## 定义三种输出格式

standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
                  '[%(levelname)s][%(message)s]' ## (时间,线程名字,线程数量,任务名字,文件名字,报错行数,等级,信息)

simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'

id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'

## 目录 路径
logfile_dir = os.path.dirname(os.path.abspath(__file__))

logfile_name = 'log1.log'
logfile_name_boss = 'boss.log'
## 如果不存在定义的日志目录就创建一个

if not os.path.isdir(logfile_dir):
    os.mkdir(logfile_dir)

# log 文件的全路径

logfile_path = os.path.join(logfile_dir,'logs',logfile_name)
logfile_path_boss = os.path.join(logfile_dir,'boss',logfile_name_boss)
## log配置字典


LOGGING_DIG= {
    'version':1,
    'disable_existing_loggers':False,
    'formatters':{          ## 配置相应格式化
        'standard':{
            'format':standard_format
        },
        'simple':{
            'format':simple_format
        },
        'easy':{
            'format':id_simple_format
        }
    },
    'filters':{},
    'handlers':{  ## 配置句柄 文件 或者 控制台
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
            'formatter':'simple'
        },
        'default':{
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler', ## 轮换着保存到文件
            'formatter':'standard',
            'filename':logfile_path,   # 文件名字  绝对路径
            'maxBytes':1024*1024*5,  ## 单文件最大大小  字节
            'backupCount':5,         ## 最多多少个文件
            'encoding':'utf-8'
        },
        'sb_boss':{
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler', ## 轮换着保存到文件
            'formatter':'easy',
            'filename':logfile_path_boss,   # 文件名字  绝对路径
            'maxBytes':1024*1024*5,  ## 单文件最大大小  字节
            'backupCount':5,         ## 最多多少个文件
            'encoding':'utf-8'
        }
    },
    'loggers':{        #对象
            '':{
                'handlers':['default','console','sb_boss'],
                'level':'DEBUG',
                'propagate':True
            }
    }
}



def load_my_logging_cfg(task_id):
    logging.config.dictConfig(LOGGING_DIG)  ## 添加配置
    logger = logging.getLogger(task_id) ##  任务标识
    return logger


if __name__ == '__main__':
    logger = load_my_logging_cfg('购物车')   ##这是使用,这个部分可以包装成函数
    logger.info('it works')
    

转载于:https://www.cnblogs.com/albert0823/p/11117029.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值