• django使用logging记录日志


      django使用logging记录日志,我没有用这方式去记录日志,主要还是项目小的原因吧,

    有机会遇见大项目的话可以回头研究.

    配置setting.py配置文件

    import logging
    import django.utils.log
    import logging.handlers
     
     
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': True,
        'formatters': {
           'standard': {
                'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] 
    			[%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}
        },
        'filters': {
        },
        'handlers': {
            'mail_admins': {
                'level': 'ERROR',
                'class': 'django.utils.log.AdminEmailHandler',
                'include_html': True,
            },
            'default': {
                'level':'DEBUG',
                'class':'logging.handlers.RotatingFileHandler',
                'filename': '/sourceDns/log/all.log',     #日志输出文件
                'maxBytes': 1024*1024*5,                  #文件大小 
                'backupCount': 5,                         #备份份数
                'formatter':'standard',                   #使用哪种formatters日志格式
            },
            'error': {
                'level':'ERROR',
                'class':'logging.handlers.RotatingFileHandler',
                'filename': '/sourceDns/log/error.log',
                'maxBytes':1024*1024*5,
                'backupCount': 5,
                'formatter':'standard',
            },
            'console':{
                'level': 'DEBUG',
                'class': 'logging.StreamHandler',
                'formatter': 'standard'
            },
            'request_handler': {
                'level':'DEBUG',
                'class':'logging.handlers.RotatingFileHandler',
                'filename': '/sourceDns/log/script.log', 
                'maxBytes': 1024*1024*5, 
                'backupCount': 5,
                'formatter':'standard',
            },
            'scprits_handler': {
                'level':'DEBUG',
                'class':'logging.handlers.RotatingFileHandler',
                'filename':'/sourceDns/log/script.log', 
                'maxBytes': 1024*1024*5, 
                'backupCount': 5,
                'formatter':'standard',
            }
        },
        'loggers': {
            'django': {
                'handlers': ['default', 'console'],
                'level': 'DEBUG',
                'propagate': False 
            },
            'django.request': {
                'handlers': ['request_handler'],
                'level': 'DEBUG',
                'propagate': False,
            },
            'scripts': { 
                'handlers': ['scprits_handler'],
                'level': 'INFO',
                'propagate': False
            },
            'sourceDns.webdns.views': {
                'handlers': ['default', 'error'],
                'level': 'DEBUG',
                'propagate': True
            },
            'sourceDns.webdns.util':{
                'handlers': ['error'],
                'level': 'ERROR',
                'propagate': True
            }
        } 
    }
    

    解析:

    1.formatters:配置打印日志格式;

    2.handler:用来定义具体处理日志的方式,可以定义多种,
    "default"就是默认方式,"console"就是打印到控制台方式;

    3.loggers:用来配置用那种handlers来处理日志,比如你同时需要输出日志到文件、控制台;

    4.loggers类型为"django"---这将处理所有类型日志;

    5.sourceDns.webdns.views--我觉得这是按照你的<项目名.app名.views>的格式命名的.

    views.py代码配置

    logger = logging.getLogger('sourceDns.webdns.views')
     
    try:
        mysql= connectMysql('127.0.0.1', '3306', 'david')
    except Exception,e:
        logger.error(e)
    
  • 相关阅读:
    linux命令之------Linux文档编辑
    linux命令之------Linux文件系统具体目录
    linux命令之------快捷键说明
    linux命令之------Tar解压缩
    CentOS7如何关闭防火墙
    centos7中运行ifconfig提示-bash: ifconfig: command not found
    System.getProperty、PropConfig.loadConfig应用
    Java高并发syncronized深入理解
    json的工具以及浏览器排序问题
    Mockito: InvalidUseOfMatchersException
  • 原文地址:https://www.cnblogs.com/fawaikuangtu123/p/9968552.html
Copyright © 2020-2023  润新知