{ "info": { "author": "ChaosHead", "author_email": "prostomrkot@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Programming Language :: Python" ], "description": "\u041f\u0430\u043a\u0435\u0442 django_logger \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043b\u043e\u0433\u043e\u0432 \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c django_logger \u043d\u0443\u0436\u043d\u043e:\n\n1) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u043e\u0432:\n\n class Log(models.Model):\n level = models.CharField(max_length=200)\n message = models.TextField()\n extra = models.TextField()\n created_at = models.DateTimeField(auto_now_add=True)\n\n2) \u0432 \u0444\u0430\u0439\u043b\u0435 settings.py \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f,\n\u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430:\n\n LOGGING = {\n 'version': 1,\n 'disable_existing_loggers': False,\n 'handlers': {\n 'filehandler': {\n 'level': 'INFO',\n 'class': 'django_logger.handler.FileLogHandler',\n 'filename': file_log\n }\n },\n 'loggers': {\n 'registry': {\n 'handlers': ['filehandler'],\n 'level': 'INFO',\n 'propagate': False,\n }\n }\n }\n\n3) \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 CreateViews, \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043b\u043e\u0433\u043e\u0432 \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445,\n\u0438 \u043e\u0431\u0435\u0440\u043d\u0430\u0443\u0442\u044c \u0435\u0433\u043e \u0432 @csrf_exempt \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440,\n\u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430:\n\n @csrf_exempt\n def create_log(request):\n strings = request.POST\n\n for key in strings:\n string = json.loads(strings[key])\n default_log_data = string['default_log_data']\n extra_data = string['extra_data']\n\n Log.objects.create(level=default_log_data['level'],\n message=default_log_data['message'],\n extra=extra_data)\n\n return HttpResponse()\n\n4) \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441 views-\u0445\u0430\u043c\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435\u043c \u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043b\u043e\u0433\u0433\u0435\u0440\u0430:\n\n logger = logging.getLogger('registry')\n\n\u0438 \u0432 \u0442\u0435\u043b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u0440\u0438 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043b\u043e\u0433\u0438, \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c:\n\n logger.info(message, extra={})\n\n\u0433\u0434\u0435 message=\"\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u0435\u043c\u043e\u0435 \u0432 \u043b\u043e\u0433\u0433\u0435\u0440 \u043f\u0440\u0438 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\",\n\u0430 extra=\"\u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u043c\u0438 \u0441\u0430\u043c\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c\"\n\n5) \u0432 \u0444\u0430\u0439\u043b\u0435 settings.py \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u044b\u0435:\n\n file_log=\"\u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043b\u043e\u0433\u0438\",\n log_url=\"\u0443\u0440\u043b, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043b\u043e\u0433\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430, \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0431\u0443\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445\"\n periodicity_of_sending_logs=\"\u043f\u0435\u0440\u0435\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043b\u043e\u0433\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c\"\n\n6) \u0432 settings.py, \u0432 INSTALLED_APPS \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448 django_logger,\n\u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 manage.py \u043a\u043e\u043c\u043c\u0430\u043d\u0434\u044b \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 django_logger.\n\n7) \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u043f\u0443\u0441\u0442\u0438\u0442\u044c manage.py \u043a\u043e\u043c\u043c\u0430\u043d\u0434\u0443 \"command_log_user_actions\" \u0438\u0437 \u043a\u043e\u043c\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438,\n\u043e\u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043b\u043e\u0433\u0438, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b, \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043d\u0430\u0448\u0443 CreateViews, \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438,\n\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 periodicity_of_sending_logs.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "django", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django_logger", "package_url": "https://pypi.org/project/django_logger/", "platform": "", "project_url": "https://pypi.org/project/django_logger/", "project_urls": null, "release_url": "https://pypi.org/project/django_logger/0.1.1.0/", "requires_dist": null, "requires_python": "", "summary": "django_logger", "version": "0.1.1.0" }, "last_serial": 2624868, "releases": { "0.1.1.0": [ { "comment_text": "", "digests": { "md5": "90ed99cdd5a82e76d76bceac06409077", "sha256": "59a6625a9a26fe805b171ff591a956fa80fc82b1b1e156c81ea0949961e094ea" }, "downloads": -1, "filename": "django_logger-0.1.1.0.tar.gz", "has_sig": false, "md5_digest": "90ed99cdd5a82e76d76bceac06409077", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3042, "upload_time": "2017-02-07T11:35:05", "url": "https://files.pythonhosted.org/packages/45/3e/9ff68494ec5519f6bc3f3cf50ba855758a4e1a66432d0e4f4e583f0c9490/django_logger-0.1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "90ed99cdd5a82e76d76bceac06409077", "sha256": "59a6625a9a26fe805b171ff591a956fa80fc82b1b1e156c81ea0949961e094ea" }, "downloads": -1, "filename": "django_logger-0.1.1.0.tar.gz", "has_sig": false, "md5_digest": "90ed99cdd5a82e76d76bceac06409077", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3042, "upload_time": "2017-02-07T11:35:05", "url": "https://files.pythonhosted.org/packages/45/3e/9ff68494ec5519f6bc3f3cf50ba855758a4e1a66432d0e4f4e583f0c9490/django_logger-0.1.1.0.tar.gz" } ] }