【问题标题】:Logging with django rest framework with WSGI使用 WSGI 使用 django rest 框架进行日志记录
【发布时间】:2020-10-31 01:44:13
【问题描述】:

我是后端开发的新手。我试图用 Django 休息框架写一些日志。我设置了WSGI模式,000-default.conf文件是

<VirtualHost *:80>
ServerAdmin user@gmail.com
DocumentRoot /home/ubuntu/myproject_backend/myproject

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/ubuntu/myproject_backend/myproject/static

<Directory /home/ubuntu/myproject_backend/myproject/static>
Require all granted
</Directory>

<Directory /home/ubuntu/myproject_backend/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

WSGIDaemonProcess myproject python-path=/home/ubuntu/myproject_backend/myproject python-home=/home/ubuntu/myproject_backend/env
WSGIProcessGroup myproject 
WSGIScriptAlias / /home/ubuntu/myproject_backend/myproject/myproject/wsgi.py
WSGIPassAuthorization On
</VirtualHost>

我在setting.py 中添加了LOGGING

LOGGING = {
    'version': 1,
    # Version of logging
    'disable_existing_loggers': False,
    #disable logging
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'my_log.log',
        }
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': env("LOG_LEVEL"),
            'propagate': True,
        },
    },
}

我尝试了一个简单的警告日志

logging.warning("Logging Tutorials")

现在,当我使用 runserver 命令在本地进行测试时,日志正在运行。但是,当我将代码推送到服务器时,写入error.log 文件的权限被拒绝。

PermissionError: [Errno 13] Permission denied

我想知道如何授予权限以及授予哪个用户?服务器是 ubuntu 操作系统。

我知道有一些关于这个问题的帖子。但是,我无法弄清楚我到底要做什么。提前致谢。

【问题讨论】:

    标签: django django-rest-framework wsgi django-logging


    【解决方案1】:

    您自己编写的日志最好放在项目的基目录或子目录中。例如,我将日志放在基本目录下的var/log 中。但是,这假定正在运行的用户有权在该目录中写入,但情况并非总是如此,这取决于部署。

    为了将日志写入本地和生产的同一位置,请使用设置文件中预定义的 BASE_DIR:

    
    LOGGING = {
        'version': 1, # Version of logging
        'disable_existing_loggers': False, #disable logging
        'handlers': {
            'file': {
                'level': 'DEBUG',
                'class': 'logging.FileHandler',
                'filename': f'{BASE_DIR}/my_log.log',
            }
        },
        'loggers': {
            'django': {
                'handlers': ['file'],
                'level': env("LOG_LEVEL"),
                'propagate': True,
            },
        },
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-23
      • 2017-05-24
      • 2015-12-14
      • 1970-01-01
      • 2023-03-14
      • 2011-10-21
      • 2015-02-17
      • 2016-04-26
      相关资源
      最近更新 更多