python ---高大上版日志

#logging
"""
工作日志分4个大类:
1.系统日志:记录服务器的一些重要信息:监控系统 cpu温度 网卡流量  重要的硬件的一些指标
  运维人员经常使用的  记录操作的一些命令
2.网站日志:访问异常 卡顿 蜘蛛 访问量
3.辅助开发日志: 开发人员在开发项目中,利用日志进行排错,排除一些避免不了的错误,辅助开发
4.记录用户信息日志:用户的消费习惯,数据库解决
日志是谁使用的:开发者使用的
"""
# 3个版本日志:
# 1.low版
# 2.标配版
# 3.高大上版:**************************
#   1.自定制日志(通过字典的方式)
#   2.轮转版日志
#log日志级别

# logging.debug('debug message')
# logging.info('info message')
# logging.warning('error message')
#logging.error('error message')
# logging.critical('critical message')

import logging.config
import os
# 定义三种日志输出格式 开始
standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d][%(levelname)s][%(message)s]' #其中name为getlogger指定的名字
simple_format = '在 %(asctime)s %(message)s'
id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'

#定义日志输出给 结束
logfile_name="log1.log"#log文件名
logfile_path=os.path.join(os.path.dirname(__file__),logfile_name)#在当前目录生成日志文件

# log配置字典
#logging_dic  第一层的所有的键不能变

LOGGING_DIC = {
    'version': 1, #版本不能修改
    'disable_existing_loggers': False, #不必修改
    'formatters': {
        'standard': {
            'format': standard_format 
        },
        'simple': {
            'format': simple_format
        },
    },
    'filters': {},
    'handlers': {
        #打印到终端的日志
        'console': {
            'level': 'DEBUG', #显示在终端的级别
            'class': 'logging.StreamHandler',  # 打印到屏幕
            'formatter': 'simple' #显示在终端的格式
        },
        #打印到文件的日志,收集info及以上的日志
        'default': {
            'level': 'DEBUG', #打印到文件的级别
            'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件 轮转日志文件
            'formatter': 'standard', #打印到文件的格式
            'filename': logfile_path,  # 日志文件
            'maxBytes': 100,  # 日志大小 5M  1024*1024*5  100个字节
            'backupCount': 5,
            'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
        },#还可以特别定制 同时显示两次 也可以写到不同的文件中
        'boss': {
            'level': 'DEBUG', #显示在终端的级别
            'class': 'logging.StreamHandler',  # 打印到屏幕
            'formatter': 'simple' #显示在终端的格式
        },
    },
    'loggers': {
        #logging.getLogger(__name__)拿到的logger配置
        '': {
            'handlers': ['default', 'console','boss'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
            'level': 'DEBUG',
            'propagate': True,  # 向上(更高level的logger)传递
        },
    },
}


# 日志结束
# 日志关联
def md_logger(a="购物车日志"):
    logging.config.dictConfig(LOGGING_DIC)#导入上面定义的LOGGING配置
    logger=logging.getLogger(a)#生成一个Log实例   对应task_id
    logger.debug("it works!")#记录该文件的运行状态

def login():
    md_logger("登录成功!")
def aricle():
    print("欢迎访问文章页面")
login()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值