Django просматривает журналы исключений с уровнем INFO, а не ERROR

views.py

def error(request):
    logger.error('logger.error - test error')
    raise Exception('raise Exception - test error')

1-е настройки протоколирования:

# 1
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,  # True in dictConfig default
    'formatters': {
        'syslog': {
            'format': 'django %(levelname)s %(name)s %(process)d %(thread)d %(message)s'
        },
    },
    'handlers': {
        'syslog': {
            'class': 'logging.handlers.SysLogHandler',
            'formatter': 'syslog',
            'facility': 'local1',
            'address': '/dev/log'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['syslog'],
            'level': 'ERROR',
            'propagate': True,
        },
        '': {
            'handlers': ['syslog'],
            'level': 'ERROR'
        },
    },
    'root': {
        'handlers': ['syslog'],
        'level': 'ERROR'
    }
}

1-е логи (2 файла в django dir)

sudo tail /var/log/my_proj/django/syslog.info  
<*NO log!> 
sudo tail /var/log/my_proj/django/syslog.error  
2022-02-15T09:49:43.019832+05:00 my_proj-stage-main1 django ERROR apps.demo.views 180029 140050762920576 logger.error - test error

2-е настройки протоколирования:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,  # True in dictConfig default
    'formatters': {
        'syslog': {
            'format': 'django %(levelname)s %(name)s %(process)d %(thread)d %(message)s'
        },
    },
    'handlers': {
        'syslog': {
            'level': 'INFO',
            'class': 'logging.handlers.SysLogHandler',
            'formatter': 'syslog',
            'facility': 'local1',
            'address': '/dev/log'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['syslog'],
            'level': 'INFO',
            'propagate': True,
        },
        '': {
            'handlers': ['syslog'],
            'level': 'INFO'
        },
    },
    'root': {
        'handlers': ['syslog'],
        'level': 'INFO'
    }
}

2-й журнал (2 файла в django dir)

sudo tail /var/log/my_proj/django/syslog.info 
2022-02-15T10:00:37.377018+05:00 my_proj-stage-main1 django INFO django.request 185769 140536088752768 OK: /ru/demo/error#012Traceback (most recent call last):#012  File "/home/my_proj/.pyenv/versions/3.10.2/envs/my_proj-3.10.2/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner#012    response = get_response(request)#012  File "/home/my_proj/.pyenv/versions/3.10.2/envs/my_proj-3.10.2/lib/python3.10/site-packages/django/core/handlers/base.py", line 181, in _get_response#012    response = wrapped_callback(request, *callback_args, **callback_kwargs)#012  File "/home/my_proj/my_proj/apps/accounts/middlewares/roles.py", line 72, in _wrapped_view#012    return view_func(request, *args, **kwargs)#012  File "/home/my_proj/my_proj/apps/demo/views.py", line 78, in error#012    raise Exception('raise Exception - test error')#012Exception: raise Exception - test error
sudo tail /var/log/my_proj/django/syslog.error 
2022-02-15T10:00:37.366807+05:00 my_proj-stage-main1 django ERROR apps.demo.views 185769 140536088752768 logger.error - test error

rsyslog config

cat /etc/rsyslog.conf 
module(load="imuxsock") # provides support for local system logging
module(load="imklog")   # provides kernel logging support
module(load="imudp")
input(type="imudp" port="514")
$ActionFileDefaultTemplate RSYSLOG_FileFormat
$FileOwner my_proj
$FileGroup my_proj
$FileCreateMode 0660
$DirCreateMode 0755
$Umask 0022
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
auth,authpriv.*   /var/log/auth.log
daemon.*   -/var/log/daemon.log
kern.*    -/var/log/kern.log
lpr.*    -/var/log/lpr.log
mail.*    -/var/log/mail.log
user.*    -/var/log/user.log
mail.info   -/var/log/mail.info
mail.warn   -/var/log/mail.warn
mail.err   /var/log/mail.err
*.emerg    :omusrmsg:*

$template TEMPLATE_ERROR,"/var/log/my_proj/%programname%/syslog.error"
$template TEMPLATE_WARNING,"/var/log/my_proj/%programname%/syslog.warning"
$template TEMPLATE_INFO,"/var/log/my_proj/%programname%/syslog.info"
$template TEMPLATE_DEBUG,"/var/log/my_proj/%programname%/syslog.debug"

local1.err ?TEMPLATE_ERROR
local1.=warning ?TEMPLATE_WARNING
local1.=info;local1.=notice ?TEMPLATE_INFO
local1.=debug ?TEMPLATE_DEBUG

Вопрос: Почему "raise Exception" регистрируется как INFO. ("logger.error" работает как ожидалось)

debian 11, python 3.10, django 3.2

Вернуться на верх