精华内容
下载资源
问答
  • django 日志配置和使用

    万次阅读 2013-07-09 15:51:16
    我用的django的版本是1.5,听闻django可以配置日志模块,不用自己单独写,于是一阵狂搜加看官方文档解决了我的需求。 我的需求是需要配置多个日志文件,网上搜出来大部分是一个的,所以给大家一个我的例子做参考...

    我用的django的版本是1.5,听闻django可以配置日志模块,不用自己单独写,于是一阵狂搜加看官方文档解决了我的需求。

    我的需求是需要配置多个日志文件,网上搜出来大部分是一个的,所以给大家一个我的例子做参考。

    1.在setting.py里面配置如下:

     

    # more details on how to customize your logging configuration.
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': True,
        'formatters': {
            'standard': {
                    'format': '%(levelname)s %(asctime)s %(message)s'
                    },
        },
        'filters': {
        },
        'handlers': {
            'mail_admins': {
                'level': 'ERROR',
                'class': 'django.utils.log.AdminEmailHandler',
                'formatter':'standard',
            },
            'test1_handler': {
                'level':'DEBUG',
                'class':'logging.handlers.RotatingFileHandler',
                'filename':'path1',
                'formatter':'standard',
            },
            'test2_handler': {
                'level':'DEBUG',
                       'class':'logging.handlers.RotatingFileHandler',
                'filename':'path2',
                'formatter':'standard',
            },
        },
        'loggers': {
            'django.request': {
                'handlers': ['mail_admins'],
                'level': 'ERROR',
                'propagate': True,
            },
            'test1':{
                'handlers': ['test1_handler'],
                'level': 'INFO',
                'propagate': False
            },
             'test2':{
                'handlers': ['test2_handler'],
                'level': 'INFO',
                              'propagate': False
            },
        }
    }
    里面的level什么的可以自己调整,需要几个文件就配几个handler和logger,还是很方面的。用的时候怎么用呢,看下面吧。

    2.    在要用log的view.py里面,如果想用test1这个日志,则

                 log=logging.getLogger('test1')

                log.error(“日志内容”)

    如果,想要在日志内容里面传递变量,怎么办

                  log.error(" %s : execute %s failed",变量1,变量2),比较像c的printf,还是很方便的。

    展开全文
  • 配置django项目的日志器, 用于记录项目运行过程中的各种日志信息 1. 在settings.py中,指定如下内容, 配置日志器: 2. 使用日志配置django项目的日志器, 用于记录项目运行过程中的各种日志信息 1. 在...

    配置django项目的日志器, 用于记录项目运行过程中的各种日志信息

    1. 在settings.py中,指定如下内容, 配置日志器:

    必须先在项目根目录下创建一个logs文件夹,当然这个logs文件,是我下面所指定的日志存放位置,根据个人设置自己选择要创建的文件夹名字

    # 配置日志器,记录网站的日志信息
    LOGGING = {
        # 版本
        'version': 1,
        # 是否禁用已存在的日志器
        'disable_existing_loggers': False,
        'formatters': {
            'verbose': {
                'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
            },
            'simple': {
                'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
            },
        },
        'filters': {
            'require_debug_true': {
                '()': 'django.utils.log.RequireDebugTrue',
            },
        },
        'handlers': {
            'console': {
                'level': 'DEBUG',
                'filters': ['require_debug_true'],
                'class': 'logging.StreamHandler',
                'formatter': 'simple'
            },
            'file': {
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(BASE_DIR, "logs/logs.log"),  # 日志文件的位置,必须先手动创建这个logs文件夹
                # 单个日志文件最大字节数
                'maxBytes': 300 * 1024 * 1024,
                # 日志文件个数
                'backupCount': 10,
                'formatter': 'verbose'
            },
        },
        'loggers': {
            'django': {  # 定义了一个名为django的日志器
                'handlers': ['console', 'file'],
                'propagate': True,
                'level': 'INFO',  # 日志器接收的最低日志级别
            },
        }
    }
    

    2. 使用日志器

    # 比如在views.py 文件中使用,   # 一般用在try捕捉到异常,用来记录错误信息
    import logging
    
    from django.http import HttpResponse
    
    logger = logging.getLogger('django')   # 此处的django为,settings.py文件中,LOGGING配置下的loggers中定义的日志器名称
    
    def test(request):
        logger.info('记录info日志级别的信息')
        return HttpResponse('test')

    转载于:https://www.cnblogs.com/nichengshishaonian/p/11550201.html

    展开全文
  • 1. settings 配置 # 配置日志 LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { 'standard': { 'format': '%(levelname)s %(asctime)s %(...

    1. settings 配置

     

    # 配置日志
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': True,
        'formatters': {
            'standard': {
                'format': '%(levelname)s %(asctime)s %(message)s'   # 输出格式
            },
        },
        'handlers': {
            'visit_handlers': {     # visit_handlers : 标识(名字)
                'level': 'INFO',    # 日志等级
                'maxBytes': 5 * 1024 * 1024,    # 文件大小 - 这里是文件到 5M 会自动清空
                'class': 'logging.handlers.RotatingFileHandler',    
                'filename': 'logs/visit_log',   # 日志存储文件
                'formatter': 'standard',    
            },
            'server_handlers': {
                'level': 'ERROR',
                'maxBytes': 5 * 1024 * 1024,
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': 'logs/server_log',
                'formatter': 'standard',
            },
        },
        'loggers': {
            'visit': {
                'handlers': ['visit_handlers'],     # 使用哪个 handlers
                'level': 'INFO',    # 日志等级,这里的等级要比 handlers 要高或者一致
                'propagate': False,
            },
            'server': {
                'handlers': ['server_handlers'],
                'level': 'ERROR',
                'propagate': False,
            },
        },
    }

     

     

    2. 程序中使用

    import logging
    
    visit_logger = logging.getLogger("visit")
    server_logger = logging.getLogger("server")
    
    
    def Index(){
        try:  
            visit_logger.info("要输出的日志内容")    
       
        except Exception as e:
            server_logger.error("要输出的日志内容")
    }

     

    转载于:https://www.cnblogs.com/chaoqi/p/10929048.html

    展开全文
  • django中的日志使用 django中的app里面的py文件会自动寻找父目录的logger,所以配置了app后只需要使用__name__即可.而非app的文件(自定义文件)则需要显式的调用logger的名称使用(下面结构中的toolshandler) 使用...

    django中的日志使用

    django中的app里面的py文件会自动寻找父目录的logger,所以配置了app后只需要使用__name__即可.而非app的文件(自定义文件)则需要显式的调用logger的名称使用(下面结构中的tools和handler)

    使用方法:

    • settings中配置logging参数(以时间/每天 切割日志)

    • 在下面的loggers中定义了app名称.所有该app下面的py文件的用发是:

    import logging
    logger = logging.getLogger(__name__)
    
    • celery等其他logging配置按其他模块自定义
    • 其他文件夹(自己定义的公共文件),譬如下面结构中的tools、handler等文件夹中的用法:
    import logging
    logger = logging.getLogger("handler")
    

    文件结构

    Ares
    ├── README.md
    ├── __pycache__
    │   └── manage.cpython-37.pyc
    ├── ares
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── celery.py
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    ├── database
    │   ├── okr_2018-09-10.sql
    ├── db.sqlite3
    ├── excel_data
    │   ├── __init__.py
    │   ├── __pycache__
    │   └── template.xls
    ├── handler
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── api.py
    │   ├── api_detail.py
    │   ├── auto_view.py
    │   ├── messages.py
    │   ├── okr_result.py
    │   ├── opm.py
    │   ├── performance.py
    │   ├── personal.py
    │   ├── project.py
    │   ├── sector.py
    │   ├── sql_manage.py
    │   ├── sql_server.py
    │   ├── supervisor.py
    │   ├── team.py
    │   ├── tpo_order.sql
    │   └── tpo_tools.py
    ├── log
    │   ├── celery.log
    │   ├── celery_tasks.log
    │   ├── default.log
    │   ├── default.log.2018-12-26
    │   ├── error.log
    │   ├── script.log
    │   └── script.log.2018-12-26
    ├── manage.py
    ├── mock
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── admin.py
    │   ├── apps.py
    │   ├── migrations
    │   ├── models.py
    │   ├── serializers.py
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    ├── okr
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── admin.py
    │   ├── apps.py
    │   ├── migrations
    │   ├── models.py
    │   ├── okr_middleware.py
    │   ├── serializers.py
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    ├── okr_rest
    │   ├── Permissions.py
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── admin.py
    │   ├── apps.py
    │   ├── dispath.py
    │   ├── exc.py
    │   ├── management
    │   ├── migrations
    │   ├── models.py
    │   ├── serializers.py
    │   ├── test.py
    │   ├── urls.py
    │   └── views.py
    ├── pylintrc
    ├── requirements.txt
    ├── static
    │   ├── avatar
    │   ├── css
    │   ├── docs
    │   ├── files
    │   ├── fonts
    │   ├── images
    │   ├── img
    │   ├── js
    │   ├── plugins
    │   └── video
    ├── templates
    │   ├── 404.html
    │   ├── Home.html
    │   ├── api.html
    ├── tool_site
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── _gevent.py
    │   ├── admin.py
    │   ├── apps.py
    │   ├── migrations
    │   ├── models.py
    │   ├── serializers.py
    │   ├── tasks.py
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    ├── tools
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── deco.py
    │   ├── exc.py
    │   ├── rest_utils.py
    │   ├── utils.py
    │   └── widget.py
    └── uwsgi.ini
    

    logging配置:

    def get_log(name):
        log_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "log")
        if not os.path.exists(log_path):
            os.makedirs(log_path)
        return os.path.join(log_path, name)
    
    
    LOGGING = {
        "version": 1,
        "disable_existing_loggers": False,
        "root": {
            "level": "WARNING",
            "handlers": ["sentry"],
        },
        "formatters": {
            "standard": {
                "format": "%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] "
                          "[%(levelname)s]- %(message)s"
            }
        },
        "filters": {},
        "handlers": {
            "sentry": {
                "level": "ERROR",
                "class": "raven.contrib.django.raven_compat.handlers.SentryHandler",
                "tags": {"custom-tag": "x"},
            },
            "mail_admins": {
                "level": "ERROR",
                "class": "django.utils.log.AdminEmailHandler",
                "include_html": True,
            },
            "console": {
                "level": "INFO",
                "class": "logging.StreamHandler",
                "formatter": "standard",
            },
            "default": {
                "level": "DEBUG",
                "class": "logging.handlers.TimedRotatingFileHandler",
                "filename": get_log("default.log"),
                'when': 'midnight',
                'interval': 1,
                'backupCount': 100,
                'formatter': 'standard'
            },
            "error": {
                "level": "ERROR",
                "class": "logging.handlers.TimedRotatingFileHandler",
                "filename": get_log("error.log"),
                'when': 'midnight',
                'interval': 1,
                'backupCount': 100,
                'formatter': 'standard'
            },
    
            "request_handler": {
                "level": "DEBUG",
                "class": "logging.handlers.TimedRotatingFileHandler",
                "filename": get_log("script.log"),
                'when': 'midnight',
                'interval': 1,
                'backupCount': 100,
                'formatter': 'standard'
            },
            "script_handler": {
                "level": "DEBUG",
                "class": "logging.handlers.TimedRotatingFileHandler",
                "filename": get_log("script.log"),
                'when': 'midnight',
                'interval': 1,
                'backupCount': 100,
                'formatter': 'standard'
            },
            "celery_logger": {
                "level": "INFO",
                "class": "logging.handlers.TimedRotatingFileHandler",
                "filename": get_log("celery.log"),
                'when': 'midnight',
                'interval': 1,
                'backupCount': 100,
                'formatter': 'standard'
            },
            "celery_task_logger": {
                "level": "INFO",
                "class": "logging.handlers.TimedRotatingFileHandler",
                "filename": get_log("celery_tasks.log"),
                'when': 'midnight',
                'interval': 1,
                'backupCount': 100,
                'formatter': 'standard'
            },
        },
        "loggers": {
            "django": {
                "handlers": ["default", "console"],
                "level": "DEBUG",
                "propagate": False,
            },
            "django.request": {
                "handlers": ["request_handler"],
                "level": "DEBUG",
                "propagate": False,
            },
            "scripts": {
                "handlers": ["script_handler"],
                "level": "INFO",
                "propagate": False,
            },
            "raven": {
                "level": "ERROR",
                "handlers": ["console"],
                "propagate": False,
            },
            "sentry.errors": {
                "level": "DEBUG",
                "handlers": ["console"],
                "propagate": False,
            },
            # celery task.py文件配置
            "tool_site.tasks": {
                "handlers": ["celery_task_logger"],
                "level": "INFO",
                "propagate": True,
            },
            # celery logging配置
            "celery": {
                "handlers": ["celery_logger"],
                "level": "INFO",
                "propagate": True,
            },
            # 自定义文件夹
            "tools": {
                "handlers": ["default", "console", "error"],
                "level": "INFO",
                "propagate": True,
            },
            "handler": {
                "handlers": ["default", "console", "error"],
                "level": "INFO",
                "propagate": True,
            },
            # 下面你的App,所有该App下的py文件都会使用配置
            "okr": {
                "handlers": ["default", "console", "error"],
                "level": "INFO",
                "propagate": True,
            },
            "tool_site": {
                "handlers": ["default", "console", "error"],
                "level": "INFO",
                "propagate": True,
            },
            "mock": {
                "handlers": ["default", "console", "error"],
                "level": "INFO",
                "propagate": True,
            },
            "okr_rest": {
                "handlers": ["default", "console", "error"],
                "level": "INFO",
                "propagate": True,
            },
        },
    }
    
    展开全文
  • Django中 logging的配置和使用

    千次阅读 2018-08-10 15:59:08
    日志在程序开发中是少不了的,通过日志我们可以分析到错误在什么...django利用的就是Python提供的logging模块,但django中要用logging,还得有一定的配置规则,需要在setting中设置。   logging模块  logg...
  • 1. 将middleware复制到utils下。 ...2. setting配置 下面配置实现记录异常文件,正常的请求返回数据的文件,以时间命名。 comk_request_(时间).log' # 记录请求数据返回数据 comk_exception...
  • django 日志系统

    千次阅读 2017-12-20 16:21:00
    日志配置包括四个部分:记录器,处理器,过滤器格式器,下面我们来一一讲解 记录器 一个记录器是日志系统的一个实体,每一个记录器是一个已经命名好的可以将消息为进程写入的“桶”。 每一个记录器都会有一个
  • django使用日志输出

    万次阅读 2015-12-22 21:30:40
    django日志和国际化都是采用彼python的标准库来实现的,其中国际化是使用的GNU的gettext模块,日志采用的是logging模块。logging模块在日志方面是非常的强悍啊。 django的标准配置中有一个LOGGING的参数,但是并...
  • 18:django 日志系统

    2019-10-07 12:21:34
    日志配置包括四个部分:记录器,处理器,过滤器格式器,下面我们来一一讲解 记录器 一个记录器是日志系统的一个实体,每一个记录器是一个已经命名好的可以将消息为进程写入的“桶”。 每一个记录器都会有一个...
  • 经过多番查阅,最终实现了如何去自定义celery相关日志配置,可将日志输出到文件,并与django整合起来。 1. Celery 日志的默认配置 其实,Celery会把print语句重定向到自己的给自己的日志处理,celery是有一套自己...
  • 1. cd 到 我们从git 上拉取的代码的目录当中,使用命令: django-admin startproject 项目名称(ego) 2. 创建应用的命令(cd到apps 目录下): python ../../manage.py startapp 应用名称 创建完成之后记得在配置文件...
  • 需求:django中定时给...本文介绍如何在django使用celery定时任务,以及配置celery日志文件 一、安装 pip install django-celery pip install django-redis pip install celery pip install redis django-...
  • 这一块的内容很少, 异常使用try except即可, 日志只需要几行配置. 使用装饰器捕获方法内的所有异常 我使用装饰器来整个包裹一个方法, 捕获方法中的所有异常信息.并将其转为json返回客户端. import functools def...
  • Django中加入日志功能

    千次阅读 2018-08-16 14:50:34
    Django使用python的 logging 模块记录log,在 Django使用 Django 提供的配制方法。就是在 settings 中通过变量 LOGGING,LOGGING 是一个字典,典型的配置如下: logging模块为应用程序提供了灵活的手段记录...
  • django开发学习日志3

    2021-04-08 23:35:14
    4.设定URL路由,本地路由全局路由 5.编写交互代码 6.运行 现在,开始动手吧! 新建项目mycloud,终端输入django-admin startproject mycloud 进入项目目录才能使用manage终端命令,否则报错 进入目录 python ...
  • 使用配置文件fileConfig()函数实现日志配置3.使用字典配置信息dictConfig()函数实现日志配置3.总结注意点: 1.python代码实现完整的日志功能 需求: 1)要求将所有级别的所有日志都写入磁盘文件中 2)all.log...
  • Django使用python的内建日志模块来记录系统日志,但是要想在django应用中开启此功能使我们的部分操作能够被记录到日志文件,那么就需要进行一定的配置并且根据具体的log类型来进行调用 step 1:配置setting.py 以下...
  • 启动配置和Auto Scaling组 RDS 健康检查和日志 想学习如何构建它? 查看。 要使用这个项目吗? 安装Terraform 注册一个AWS账户 创建两个ECR存储库django-app和nginx 。 货叉/克隆 构建Django和Nginx Docker映像...
  • Django项目的日志配置 日志是一种可以追踪某些软件运行时所发生事件的方法,软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情(所以找bug可以查看日志),在应用程序出现故障时快速定位...
  • 创建的Django项目中,会在根模块中包含一个settings.py配置文件,这个配置文件中用于配置和管理Django项目的管理运维信息 2、配置文件的特性 配置项 settings.py配置文件中的所有配置项都是大写的 默认值 ...
  • 它被构建为与以下堆栈配合使用(但本身不需要任何堆栈): Heroku-IaaS Postgres-数据库 芹菜+ Redis-排队+异步 Github-版本控制+部署 熊猫-文件I / O +分析 Tastypie-API配置 电子邮件/ SMTP-本机+ Gmail 滚动...
  • 创建的Django项目中,会在根模块中包含一个settings.py配置文件,这个配置文件中用于配置和管理Django项目的管理运维信息 2、配置文件的特性 配置项 settings.py配置文件中的所有配置项都是大写的 默认值 ...
  • Django 默认后台有一个 LogEntry 来记录后台操作记录,但是系统添加了前端之后使用Django Rest Framework 提供api,就没有办法记录前端操作了,现在我想把操作记录都存储在数据库里面便于以后审计聚合。...
  • 它还具有基于Web的前端界面,用于配置合作伙伴组织,监视消息传输以及还发起新的传输。 特征 技术的 异步同步MDN 合作伙伴组织管理 数字签名 讯息加密 安全传输(SSL) 支持SSL客户端身份验证 自动清除旧...
  • Spring Boot实战之配置使用Sentry上报错误日志(一) 本文介绍Sentry Server环境的安装与配置,本文基于Centos7进行测试 Sentry 是一款基于 Django实现的错误日志收集聚合的平台,它是 Python 实现的,但是其日志...
  • 服务器SSH服务配置与python中paramiko的使用; 用户登陆与session; 最简单的实践之修改服务器时间; 查看修改服务器配置与数据库的路由; 基于websocket的实时日志实现; 查看服务器中的日志与前端的...
  • 服务器SSH服务配置与python中paramiko的使用; 用户登陆与session; 最简单的实践之修改服务器时间; 查看修改服务器配置与数据库的路由; 基于websocket的实时日志实现; 查看服务器中的日志与前端的datatable...
  • 文章目录MySQL主从复制MySQL的配置文件(masterslave的配置文件需要不同的server-id)创建和配置master备份主表中的数据(如果需要的话)创建和配置slavedjango中使用 MySQL主从复制 下面是基于于Docker配置MySQL...
  • Django地板 Djangofloor可帮助您快速创建也易于部署的Django应用程序。 为了实现这些目标,Djangofloor提供了: ... 有效的默认Django设置(如日志), 创建可立即使用且可部署的新Django项目(即使您最终替
  • 使用流程 ...Django使用FastDFS配置 https://www.cnblogs.com/tianyamoon/p/9426763.html 2. 配置tracker base_path 保存信息,日志文件存在这个目录下 3. 配置storage 启动 /usr/bin/fdfs_trac...

空空如也

空空如也

1 2 3 4 5 6
收藏数 110
精华内容 44
关键字:

django日志配置和使用